Displaying HTML with OLE

R

Richard

Hi,

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 <Unknown>
<No Description>
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
<html>
<head>
<title>Hello, World</title>
</head>
<body>
<h1><center>My "Hello, World" Demo</center></h1>
<p>
<h2><center>Not much of a demo, eh?</center></h2>
</body>
</html>
EOF

ie = WIN32OLE.new("InternetExplorer.Application")

ie.document.open # <====
Line 22
ie.document.write html
ie.document.close

sleep 5
quit
 
M

mully

Hi,

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 <Unknown>
<No Description>
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
<html>
<head>
<title>Hello, World</title>
</head>
<body>
<h1><center>My "Hello, World" Demo</center></h1>
<p>
<h2><center>Not much of a demo, eh?</center></h2>
</body>
</html>
EOF

ie = WIN32OLE.new("InternetExplorer.Application")

ie.document.open # <====
Line 22
ie.document.write html
ie.document.close

sleep 5
quit

Try navigating to a page before writing to the Document object. The
code below worked for me...

ie = WIN32OLE.new("InternetExplorer.Application")
ie.Visible = 1
ie.Navigate('about:blank')
sleep(1) while ie.ReadyState != 4
ie.Document.open
ie.Document.write html
ie.Document.close
sleep 5
quit

Hope that helps.

Mully
 
R

Richard

Hi David,

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?

Best wishes,
Richard
 
M

mully

Hi David,

Your technique worked perfectly. I was disappointed by my system's
performance, however.

Richard-

Try reducing the sleep interval...

sleep(1) while ie.ReadyState != 4

....to...

sleep(0.1) while ie.ReadyState != 4

Mully
 
R

Richard

Hi David,
Try reducing the sleep interval...

sleep(1) while ie.ReadyState != 4

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.

Nevertheless, this is a useful technique for me.

Again, many thanks.
Richard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,744
Latest member
CortneyMcK

Latest Threads

Top