createprocess例子
时间: 2024-12-13 14:28:29 浏览: 72
CreateProcess函数是Windows API中用于创建新进程的标准方法。它允许应用程序启动另一个程序,并控制其执行过程。下面是一个简单的例子,在C++中演示如何使用CreateProcess:
```cpp
#include <windows.h>
int main() {
STARTUPINFO si = {0};
PROCESS_INFORMATION pi;
// 初始化STARTUPINFO结构
si.cb = sizeof(si);
si.lpReserved = NULL;
si.lpDesktop = NULL; // 如果需要指定桌面环境
si.lpTitle = "New Process";
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; // 显示窗口和设置标准处理
// 设置标准输入、输出和错误句柄为当前进程
si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
si.hStdError = GetStdHandle(STD_ERROR_HANDLE);
// 定义要运行的程序和命令行参数
TCHAR szExe[] = "notepad.exe"; // 要打开的程序
TCHAR szCmdLine[] = TEXT("new file.txt"); // 运行的命令行参数
// 创建进程
if (CreateProcess(szExe, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) == TRUE) {
printf("新进程已成功创建,PID: %d\n", pi.dwProcessId); // 输出进程ID
WaitForSingleObject(pi.hProcess, INFINITE); // 等待进程结束
CloseHandle(pi.hProcess); // 关闭进程句柄
CloseHandle(pi.hThread); // 关闭线程句柄
} else {
printf("创建进程失败: %d\n", GetLastError());
}
return 0;
}
```
这个例子中,我们首先初始化了一个`STARTUPINFO`结构,然后指定了要运行的应用程序路径以及命令行参数。接着,`CreateProcess`函数被调用,如果操作成功,会返回新创建的进程和线程的句柄。
阅读全文
相关推荐


















