
Win32::Process - Create and manipulate processes.

sub ErrorReport{
print Win32::FormatMessage( Win32::GetLastError() );
}
Win32::Process::Create($ProcessObj,
"D:\\winnt35\\system32\\notepad.exe",
"notepad temp.txt",
0,
NORMAL_PRIORITY_CLASS,
".")|| die ErrorReport();
$ProcessObj->Suspend();
$ProcessObj->Resume();
$ProcessObj->Wait(INFINITE);

This module provides access to the process control functions in the Win32 API.

Creates a new process.
Args:
$obj container for process object
$appname full path name of executable module
$cmdline command line args
$iflags flag: inherit calling processes handles or not
$cflags flags for creation (see exported vars below)
$curdir working dir of new process
Returns non-zero on success, 0 on failure.
Creates a handle Perl can use to an existing process as identified by $pid. The $iflags is the inherit flag that is passed to OpenProcess. Currently Win32::Process objects created using Win32::Process::Open cannot Suspend or Resume the process. All other calls should work.
Win32::Process::Open returns non-zero on success, 0 on failure.
Terminates any process identified by $pid. $exitcode will be set to the exit code of the process.
Suspend the process associated with the $ProcessObj.
Resume a suspended process.
Kill the associated process, have it terminate with exit code $ExitCode.
Get the priority class of the process.
Set the priority class of the process (see exported values below for options).
Get the process affinity mask. This is a bitvector in which each bit represents the processors that a process is allowed to run on.
Set the process affinity mask. Only available on Windows NT.
Retrieve the exitcode of the process.
Wait for the process to die. $timeout should be specified in milliseconds. To wait forever, specify the constant INFINITE.
Returns the Process ID.

The following constants are exported by default.
CREATE_DEFAULT_ERROR_MODE
CREATE_NEW_CONSOLE
CREATE_NEW_PROCESS_GROUP
CREATE_NO_WINDOW
CREATE_SEPARATE_WOW_VDM
CREATE_SUSPENDED
CREATE_UNICODE_ENVIRONMENT
DEBUG_ONLY_THIS_PROCESS
DEBUG_PROCESS
DETACHED_PROCESS
HIGH_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
INFINITE
NORMAL_PRIORITY_CLASS
REALTIME_PRIORITY_CLASS
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_ERROR_RETURN
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_IDLE
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_TIME_CRITICAL