http://www.perlmonks.org?node_id=448313


in reply to -Mouse

I was having issues with the following:
> foo.pl
calling the wait condition
> perl foo.pl
doesn't wait.

I modified ouse.pm to use Win32::Process::Info to see if the parent process is Windows explorer.

Update: missing line from code
=head1 NAME ouse.pm =head1 SYNOPSIS perl -Mouse file.pl =head1 DESCRIPTION Install in your perl/lib or perl/site/lib directory in a file named "ouse.pm". Then enter the following commands: assoc .pl=Perl ftype Perl=C:\Progra~1\perl\bin\perl -Mouse "%1" %* Then clicking on a *.pl file will cause the script to run in a new window but the window will (usually) not close when the script finishes. =head1 AUTHOR tye http://perlmonks.org/index.pl?node_id=162087 =cut use Win32::Process::Info; END { #-- find the parent process; my $pi = Win32::Process::Info->new(); my @info = $pi->GetProcInfo ( $$); my @pinfo = $pi->GetProcInfo ( @info[0]->{ParentProcessId} ); #-- see if the parent process is the windows explorer. if ( $pinfo[0]->{CommandLine} =~ /explorer/i ) { eval " use Term::ReadKey; "; unless($@) { print "Press any key to close..."; ReadMode(3); ReadKey(); ReadMode(0); } else { print "Press ENTER to close: "; <STDIN>; } } } 1;