This module provides access to extended Win32 process creation and management abilities.
Process objects are created with the
Create
method (the constructor). Additional
methods can be used on objects to kill, suspend, resume, and set the priorities of processes.
The
Create
constructor has the following syntax:
Win32::Process->Create(
$Proc
,
app
,
cmnd
,
hndls
,
opts
,
dir
)
The arguments to
Create
are as follows:
-
$Proc
-
Name of the reference for the created process object.
-
app
-
Full pathname of the executable.
-
cmnd
-
Command line for executable.
-
hndls
-
Determines handle inheritance. A value of 1 turns on inheritance; a 0 value turns it off.
-
opts
-
Sets options to implement when the process is created. The available options for this
argument are listed below.
-
dir
-
The working directory for the executable.
The process is created by passing the command line in
cmnd
to the executable
named in
app
. For example, a process object for a text file running in Notepad
is created like this:
use Win32::Process;
Win32::Process->Create($proc, 'C:\\windows\\Notepad.exe',
"Notepad perlnut.txt", 1,
DETACHED_PROCESS, ".");
The process creation options given by the
opts
argument to
Create
are:
CREATE_DEFAULT_ERROR_MODE
Give the process the default error mode.
CREATE_NEW_CONSOLE
Create a new console for the process.
Can't be used with DETACHED_PROCESS.
CREATE_NEW_PROCESS_GROUP
Create process as root of a new process group.
CREATE_SEPARATE_WOW_VDM
Run process in its own Virtual DOS Machine (VDM).
Only applicable to 16-bit apps.
CREATE_SUSPENDED
Start process in a suspended state. The process
can be started with the Resume method.
CREATE_UNICODE_ENVIRONMENT
Use UNICODE characters in the environment block of
the new process.
DEBUG_PROCESS
Debug the new process with the calling process.
DEBUG_ONLY_THIS_PROCESS
Don't debug the new process if calling process
is being debugged.
DETACHED_PROCESS
Create a process with no access to the console
of the calling process.
The following methods are provided for objects of created by Win32::Process: