⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 process.pm

📁 UNIX下perl实现代码
💻 PM
字号:
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__=head1 NAMEOS2::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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -