?? process.pm
字號(hào):
package OS2::Process;$VERSION = 0.2;require Exporter;require DynaLoader;#require AutoLoader;@ISA = qw(Exporter DynaLoader);# Items to export into callers namespace by default. Note: do not export# names by default without a very good reason. Use EXPORT_OK instead.# Do not simply export all your public functions/methods/constants.@EXPORT = qw( P_BACKGROUND P_DEBUG P_DEFAULT P_DETACH P_FOREGROUND P_FULLSCREEN P_MAXIMIZE P_MINIMIZE P_NOCLOSE P_NOSESSION P_NOWAIT P_OVERLAY P_PM P_QUOTE P_SESSION P_TILDE P_UNRELATED P_WAIT P_WINDOWED my_type file_type T_NOTSPEC T_NOTWINDOWCOMPAT T_WINDOWCOMPAT T_WINDOWAPI T_BOUND T_DLL T_DOS T_PHYSDRV T_VIRTDRV T_PROTDLL T_32BIT process_entry set_title get_title);sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. If a constant is not found then control is passed # to the AUTOLOAD in AutoLoader. local($constname); ($constname = $AUTOLOAD) =~ s/.*:://; $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { ($pack,$file,$line) = caller; die "Your vendor has not defined OS2::Process macro $constname, used at $file line $line."; } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD;}bootstrap OS2::Process;# Preloaded methods go here.sub get_title () { (process_entry())[0] }# Autoload methods go after __END__, and are processed by the autosplit program.1;__END__OS2::Process - exports constants for system() call on OS2.=head1 SYNOPSIS use OS2::Process; $pid = system(P_PM+P_BACKGROUND, "epm.exe");=head1 DESCRIPTIONthe builtin function system() under OS/2 allows an optional firstargument which denotes the mode of the process. Note that this argument isrecognized only if it is strictly numerical.You can use either one of the process modes: P_WAIT (0) = wait until child terminates (default) P_NOWAIT = do not wait until child terminates P_SESSION = new session P_DETACH = detached P_PM = PM programand optionally add PM and session option bits: P_DEFAULT (0) = default P_MINIMIZE = minimized P_MAXIMIZE = maximized P_FULLSCREEN = fullscreen (session only) P_WINDOWED = windowed (session only) P_FOREGROUND = foreground (if running in foreground) P_BACKGROUND = background P_NOCLOSE = don't close window on exit (session only) P_QUOTE = quote all arguments P_TILDE = MKS argument passing convention P_UNRELATED = do not kill child when father terminates=head2 Access to process propertiesAdditionaly, subroutines my_type(), process_entry() andC<file_type(file)>, get_title() and C<set_title(newtitle)> are implemented. my_type() returns the type of the current process (one of "FS", "DOS", "VIO", "PM", "DETACH" and "UNKNOWN"), or C<undef> on error.=over=item C<file_type(file)> returns the type of the executable file C<file>, ordies on error. The bits 0-2 of the result contain one of the values=over=item C<T_NOTSPEC> (0)Application type is not specified in the executable header. =item C<T_NOTWINDOWCOMPAT> (1)Application type is not-window-compatible. =item C<T_WINDOWCOMPAT> (2)Application type is window-compatible. =item C<T_WINDOWAPI> (3)Application type is window-API.=backThe remaining bits should be masked with the following values todetermine the type of the executable:=over=item C<T_BOUND> (8)Set to 1 if the executable file has been "bound" (by the BIND command)as a Family API application. Bits 0, 1, and 2 still apply.=item C<T_DLL> (0x10)Set to 1 if the executable file is a dynamic link library (DLL)module. Bits 0, 1, 2, 3, and 5 will be set to 0.=item C<T_DOS> (0x20)Set to 1 if the executable file is in PC/DOS format. Bits 0, 1, 2, 3,and 4 will be set to 0.=item C<T_PHYSDRV> (0x40)Set to 1 if the executable file is a physical device driver. =item C<T_VIRTDRV> (0x80)Set to 1 if the executable file is a virtual device driver. =item C<T_PROTDLL> (0x100)Set to 1 if the executable file is a protected-memory dynamic linklibrary module.=item C<T_32BIT> (0x4000)Set to 1 for 32-bit executable files. =backfile_type() may croak with one of the strings C<"Invalid EXEsignature"> or C<"EXE marked invalid"> to indicate typical errorconditions. If given non-absolute path, will look on C<PATH>, willadd extention F<.exe> if no extension is present (add extension F<.>to suppress).=item process_entry()returns a list of the following data:=over=item Title of the process (in the C<Ctrl-Esc> list);=item window handle of switch entry of the process (in the C<Ctrl-Esc> list);=item window handle of the icon of the process;=item process handle of the owner of the entry in C<Ctrl-Esc> list;=item process id of the owner of the entry in C<Ctrl-Esc> list;=item session id of the owner of the entry in C<Ctrl-Esc> list;=item whether visible in C<Ctrl-Esc> list;=itemwhether item cannot be switched to (note that it is not actuallygrayed in the C<Ctrl-Esc> list));=item whether participates in jump sequence;=item program type. Possible values are: PROG_DEFAULT 0 PROG_FULLSCREEN 1 PROG_WINDOWABLEVIO 2 PROG_PM 3 PROG_VDM 4 PROG_WINDOWEDVDM 7 Although there are several other program types for WIN-OS/2 programs,these do not show up in this field. Instead, the PROG_VDM orPROG_WINDOWEDVDM program types are used. For instance, forPROG_31_STDSEAMLESSVDM, PROG_WINDOWEDVDM is used. This is because allthe WIN-OS/2 programs run in DOS sessions. For example, if a programis a windowed WIN-OS/2 program, it runs in a PROG_WINDOWEDVDMsession. Likewise, if it's a full-screen WIN-OS/2 program, it runs ina PROG_VDM session.=back=item C<set_title(newtitle)> - does not work with some windows (if the title is set from the start). This is a limitation of OS/2, in such a case $^E is set to 372 (type help 372for a funny - and wrong - explanation ;-).=item get_title() is a shortcut implemented via process_entry().=back=head1 AUTHORAndreas Kaiser <ak@ananke.s.bawue.de>, Ilya Zakharevich <ilya@math.ohio-state.edu>.=head1 SEE ALSOC<spawn*>() system calls.=cut
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -