> -----Original Message----- > From: Frazier, Joe Jr > Sent: Friday, June 01, 2001 11:35 > To: 'perl-win32-gui-users@lists.sourceforge.net' > Subject: RE: [perl-win32-gui-users] Opening a *New* Browser Window? > > > > > > -----Original Message----- > > From: Morbus Iff [mailto:[EMAIL PROTECTED] > > Sent: Friday, June 01, 2001 10:50 > > To: perl-win32-gui-users@lists.sourceforge.net > > Subject: Re: [perl-win32-gui-users] Opening a *New* Browser Window? > > > > > > >>| Well, then you just take the best of both ... first, you > > open a new > > >>| window and then you do what you did before. I pretty > > sure that the > > >>| ShellExecute will target this new browser. At least, > > when I click a link > > > > > >That was so blatantly obvious that I'm hiding in a corner > > for not seeing it > > >myself. I tried it this morning using the following code: > > > > Check your logic.... > > > > use Win32::TieRegistry; > > > my $http = > $Registry->{"Classes\\http\\shell\\open\\command"}->{'\\'}; > > > unless ( fork ) { system("$http"); } > You call system here..... and then... > > > use Win32::API; > > > my $ShellExecute = new Win32::API("shell32", > "ShellExecuteA", > > > ['N','P', 'P', 'P', 'P', 'I'], 'N'); > > > $ShellExecute->Call(0, "open", $url, 0, 0, 1); > > You call the ShellExecuteA. This results in two windows. > Now... I have never used fork, so i dont know the exact > syntax, but somthing like this.... > > > use Win32::TieRegistry; > use Win32::API; > my $http = $Registry->{"Classes\\http\\shell\\open\\command"}->{'\\'}; > > unless (`start $http $url`){ # if this call fails, > do this..... > > my $ShellExecute = new Win32::API("shell32", > "ShellExecuteA",['N','P', 'P', 'P', 'P', 'I'], 'N'); > $ShellExecute->Call(0, "open", $url, 0, 0, 1); > } >
or..... (doh!) use Win32::TieRegistry; use Win32::API; $url = "http://www.activestate.com"; my $http = $Registry->{"Classes\\http\\shell\\open\\command"}->{'\\'}; unless ( $pid = fork ) { system("$http $url"); } # note the adding of $pid = # and the adding of the $url if($pid){ # note to check if the other thing returned good pid... my $ShellExecute = new Win32::API("shell32", "ShellExecuteA",['N','P', 'P', 'P', 'P', 'I'], 'N'); print $ShellExecute,"\n"; $ShellExecute->Call(0, "open", $url, 0, 0, 1); } print $pid, "\n"; undef $ShellExecute; > > >This works fine in IE6b. I'll assume it works fine > > elsewhere. It does very > > >weird things on Mozilla though. Can anyone try this on > > Netscape to see if > > >it's similar (I don't have NS on this machine, only Moz). > > > > Correction. This does not work on IE6. Opens two windows. > > > > > > Morbus Iff > > .sig on other machine. > > http://www.disobey.com/ > > http://www.gamegrene.com/ > > > > > > _______________________________________________ > > Perl-Win32-GUI-Users mailing list > > Perl-Win32-GUI-Users@lists.sourceforge.net > > http://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users > > >