http://qs1969.pair.com?node_id=129677

chinman has asked for the wisdom of the Perl Monks concerning the following question:

Hey,
I've been trying to get the code shown below to work on NT, and it's driving me nuts. It works flawlessly on Win2k, but not on NT 4.0. The GetActiveObject does not seem to return anything, even when several copies of IE may be running. I've searched thru the ActiveState mailing lists, etc, but I can't find any solution or workaround for the problem. Any ideas?
Thanks,
chinman
#!/usr/bin/perl -w use strict; my $file = 'C:\temp\index.html'; display_browser("$file"); ##subroutine that supposedly displays a file in IE browser window sub display_browser { my $file = shift; ## convert backslashes to forward slashes in the file path $file =~ s!\\!/!g; if ( $^O eq "MSWin32" and "$file" and -e "$file" ) { use Win32::OLE; ## test to see if internet explorer is already running my $ie = Win32::OLE->GetActiveObject('InternetExplorer.Applica +tion'); ## if ie is not running, launch it, yeah right! unless ( defined $ie ) { $ie = new Win32::OLE( 'InternetExplorer.Application', '' ) + or die "Yikes, can't launch Internet Explorer: $!"; } ## if we were successful in launching, make visible and naviga +te to the proper URL if ( defined $ie ) { $ie->{Visible} = 1; $ie->Navigate("$file"); } } }