怎么使用 CreateProcess()
时间: 2024-02-12 07:32:23 浏览: 150
CreateProcess() 是一个 Windows API 函数,用于启动一个新的进程。以下是一个简单的使用示例:
```c++
#include <Windows.h>
int main() {
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
// 启动一个新的进程
if (!CreateProcess(NULL, "C:\\Windows\\System32\\notepad.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
printf("Failed to create process (%d)\n", GetLastError());
return 1;
}
// 等待进程结束
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭进程和线程的句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
```
在上面的示例中,我们使用 CreateProcess() 来启动一个新的 notepad.exe 进程,并等待进程结束。如果 CreateProcess() 调用失败,我们会打印 GetLastError() 函数返回的错误代码。
CreateProcess() 函数有很多参数,它们的作用如下:
- lpApplicationName: 要运行的可执行文件的名称或路径。
- lpCommandLine: 要运行的可执行文件的命令行参数。
- lpProcessAttributes: 进程安全描述符。
- lpThreadAttributes: 线程安全描述符。
- bInheritHandles: 是否继承父进程的句柄。
- dwCreationFlags: 进程创建标志。
- lpEnvironment: 新进程的环境块指针。
- lpCurrentDirectory: 新进程的当前目录。
- lpStartupInfo: STARTUPINFO 结构体指针,用于指定新进程的属性。
- lpProcessInformation: PROCESS_INFORMATION 结构体指针,用于返回有关新进程的信息。
阅读全文