> -----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
> > 
> 

Reply via email to