summaryrefslogtreecommitdiff
path: root/sample/win32ole/ienavi.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2023-12-31 17:44:20 +0900
committergit <svn-admin@ruby-lang.org>2024-01-28 15:25:36 +0000
commit3ad54239b529b1b4b96d06117e8039c1d57f1e89 (patch)
tree771542a04801f4210a28384aa80cd606af5d5a5e /sample/win32ole/ienavi.rb
parent703ad99bf8de24137a8d635c13d6c7c8bc6b1f56 (diff)
[ruby/win32ole] [DOC] Move sample to toplevel
https://github.com/ruby/win32ole/commit/70ea60c4d2
Diffstat (limited to 'sample/win32ole/ienavi.rb')
-rw-r--r--sample/win32ole/ienavi.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/sample/win32ole/ienavi.rb b/sample/win32ole/ienavi.rb
new file mode 100644
index 0000000000..5d0536028b
--- /dev/null
+++ b/sample/win32ole/ienavi.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: false
+require 'win32ole'
+
+$urls = []
+
+def navigate(url)
+ $urls << url
+end
+
+def stop_msg_loop
+ puts "Now Stop IE..."
+ $LOOP = false;
+end
+
+def default_handler(event, *args)
+ case event
+ when "BeforeNavigate"
+ puts "Now Navigate #{args[0]}..."
+ end
+end
+
+ie = WIN32OLE.new('InternetExplorer.Application')
+ie.visible = true
+ie.gohome
+
+ev = WIN32OLE_EVENT.new(ie, 'DWebBrowserEvents')
+
+ev.on_event {|*args| default_handler(*args)}
+ev.on_event("NavigateComplete") {|url| navigate(url)}
+ev.on_event("Quit") {|*args| stop_msg_loop}
+
+$LOOP = true
+while ($LOOP)
+ WIN32OLE_EVENT.message_loop
+end
+
+puts "You Navigated the URLs ..."
+$urls.each_with_index do |url, i|
+ puts "(#{i+1}) #{url}"
+end
+