创建进程
一、所需函数原型
函数原型
1
2
3
4
5
6
7
8
9
10
11
12
13
|
BOOL CreateProcess ( LPCTSTR lpApplicationName,//对象名称 LPTSTR lpCommandLine,//命令行 LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATIONlpProcessInformation ); |
STARTUPINFO用于指定新进程的主窗口特性的一个结构。(IN参数)
主要存储创建子进程的各种详细信息
BOOL CreateChildProcess(PTCHAR szChildProcessName, PTCHAR szCommandline) //创建子进程 { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&pi, sizeof(pi)); ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); //这个结构体里面的必填项 if (!CreateProcess( szChildProcessName, //对象名称 szCommandline, //命令行 NULL, //不继承进程句柄 NULL, //不继承线程句柄 FALSE, //不继承句柄 0, //没有创建标志 NULL, //使用父进程环境变量 NULL, //使用父进程目录作为当前目录 &si, //STARTUOINFOW结构体 &pi )) { } }
PROCESS_INFORMATION (OUT参数)
PROCESS_INFORMATION 结构
typedef struct_PROCESS_INFORMATION{
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
}PROCESS_INFORMATION;
其中成员含义如下。
① hProcess:返回新进程的句柄。
② hThread:返回主线程的句柄。
③ dwProcessId:返回一个全局进程标识符。该标识符用于标识一个进程。从进程被
创建到终止,该值始终有效。
④ dwThreadId:返回一个全局线程标识符。该标识符用于标识一个线程。从线程被创
建到终止,该值始终有效。
原创学习随笔心得,请勿转载!