I’m running WinXP/SP2 and Ruby 1.8.2. I tried the sample below from The
Ruby Way,2nd ed., with modified HTML (which I tested independently).
When I run it in a Command Window, I get:
K:_Projects\Ruby_Ruby_Techniques\Win32Ole>TestingOleWithHtml.rb
K:/_Projects/Ruby/_Ruby_Techniques/Win32Ole/TestingOleWithHtml.rb:22:in
`method_missing’: document (WIN32OLERuntimeError)
OLE error code:80004005 in
HRESULT error code:0x80020009
Exception occurred. from
K:/_Projects/Ruby/_Ruby_Techniques/Win32Ole/TestingOleWithHtml.rb:22
Any ideas?
Thanks in Advance,
Richard
Source: The Ruby Way, 2nd ed., pg. 585
require “win32ole”
msg = “Hello, World”
html = <<EOF
Hello, World
My "Hello, World" Demo
Not much of a demo, eh?
EOF
ie = WIN32OLE.new(“InternetExplorer.Application”)
ie.document.open # <====
Line 22
ie.document.write html
ie.document.close
Is your default homepage a blank page? I think this might be a problem.
Set
your default page to something else or try putting “ie.gohome” or "
ie.navigate(“http://nlsmith.com”)" before the ie.document.open. Then
you’ll
have a document object to work with.
Your technique worked perfectly. I was disappointed by my system’s
performance, however.
I used a .rbw extension to avoid the creation of a temporary Command
Window. Is there a simple approach to putting up a graphical progress
bar that:
– loops while checking to see whether the IE window had opened yet;
and
– closes when the IE window is displayed?
That sped it up a lot. Of course, a couple of test runs doesn’t prove
much, e.g. my virus checker might have been running unattended in
background yesterday.