编辑
typedef struct_PROCESS_INFORMATION{
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
}PROCESS_INFORMATION;
其中成员含义如下。
① hProcess:返回新进程的句柄。
② hThread:返回主线程的句柄。
③ dwProcessId:返回一个全局进程标识符。该标识符用于标识一个进程。从进程被
创建到终止,该值始终有效。
④ dwThreadId:返回一个全局线程标识符。该标识符用于标识一个线程。从线程被创
建到终止,该值始终有效。
编辑
该结构用于指定新进程的主窗口特性。STARTUPINFO 结构定义如下。
typedef struct_STARTUPINFO
{
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserverd2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
}STARTUPINFO,*LPSTARTUPINFO;
其中成员含义如下。
① cb:指定该结构大小。
② lpReserved:保留,置为NULL。
③ lpDesktop:指定一个字符串,包括该进程的桌面名或窗口位置名。
④ lpTitle:指定控制台进程创建的新控制台窗口标题。
⑤ dwX,dwY:指定新窗口左上角的x 和y 偏移量(以像素为单位)。如果dwFlags 成员
未指定STARTF_USEPOSITION 标志,则忽略这两项。
⑥ dwXSize,dwYSize:指定新窗口的宽度和高度。如果dwFlags 成员未指定
STARTF_USESIZE 标志,则忽略这两个成员。
⑦ dwXCountChars,dwYCountChars:指定新控制台窗口的屏幕缓冲区的宽度和高度。
如果dwFlags 成员未指定STARTF_USECOUNTCHARS 标志,则忽略这两成员。
⑧ dwFillAttribute:指定新控制台窗口的初始文字和背景颜色。如果dwFlags 成员未
指定STARTF_USEFILLATTRIBUTE 标志,则忽略该成员。
⑨ dwFlags:创建窗口标志。
⑩ wShowWindow:新窗口的显示状态。如果dwFlags 成员未指定STARTF_
USESHOWWINDOWW 标志,则忽略该成员。
cbReserved2:保留,必须置为0。
lpReserved2:保留,必须置为NULL。
hStdInput:指定一个句柄,该句柄用作进程的标准输入句柄。如果dwFlags 成员未
指定STARTF_USESTDHANDLES 标志,则忽略该成员。
hStdOutput:指定一个句柄,该句柄用作进程的标准输出句柄。如果dwFlags 成员
未指定STARTF_USESTDHANDLES,则忽略该成员。
hStdError:指定一个句柄,该句柄用作进程的标准错误句柄。如果dwFlags 成员未
指定STARTF_USESTDHANDLES,则忽略该成员。
该结构存放一个对象的安全描述符并指定是否继承返回的句柄。
SECURITY_ATTRIBUTES 结构定义如下。
typedef struct_SECURITY_ATTRIBUTES{
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
}SECURITY_ATTRIBUTES
其中成员含义如下。
① nLength:指定该结构大小。
② lpSecurityDescriptor:指向一个对象的安全描述符,该安全描述符控制对象的共享。
如果该成员置为NULL,则该对象使用调用进程的默认安全描述符。
③ bInheritHandle:指定新进程被创建时是否继承返回的句柄。若该成员置为TRUE,
则新进程继承该句柄。