-Original Message-
From: perl-win32-users-boun...@listserv.activestate.com [mailto:perl-
win32-users-boun...@listserv.activestate.com] On Behalf Of Barry Brevik
Sent: Tuesday, August 23, 2011 2:08 PM
To: perl-win32-users@listserv.ActiveState.com
Subject: Help with Win32::Process::Create()
I'm working on an app that periodically needs to execute outside
procedures. Ideally, I want to launch the outside procedure in fire
and
forget mode; that is, I do not want to wait for the outside process to
terminate.
I ALREADY HAVE some code that does this (see below). My question is- is
there a way to periodically poll the outside process to determine if it
is still running? I've tried a few things already and none of them
work.
= the code =
use strict;
use warnings;
use Win32::Process;
# Parameters for the Win32::Process::Create function:
#
# Process This is an empty string that will receive
#a process ID used to address the child process.
#Returns a string that looks like this:
#Win32::Process=SCALAR(0x235478).
#
# fullPath The full path to the program including the
#program name and extension. Can be UNC.
#
# newArg The name of the program itself with an extension,
#but no path. Also, command line arguments go here.
#
# inheritHndls Should the child process inherit the parent's file
handles?
#
# flagsx OR'd combination of the flags listed above.
#
# dirx Startup directory for the child process.
#
my $process = '';
my $dirx = '.';
my $inheritHndls = 0;
my $newArg = 'notepad.exe';
my $fullPath = c:\\windows\\system32\\$newArg;
my $flagsx = DETACHED_PROCESS | NORMAL_PRIORITY_CLASS;
if (my $spawnhndl = Win32::Process::Create($process, $fullPath,
$newArg,
$inheritHndls, $flagsx, $dirx))
{
my $pid = $process-GetProcessID();
print Child process returned PID: $pid\n;
}
else
{
my $errormsg = Win32::FormatMessage(Win32::GetLastError());
print Failed to launch process $fullPath: $errormsg\n;
}
___
Take a look at the GetExitCode method for Win32::Process.
HTH, Ken
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs