CreateProcess 举一个例子
时间: 2024-11-06 16:19:38 浏览: 8
CreateProcess 是Windows API中的一部分,用于创建新的进程并启动指定的程序。这个函数允许你以不同的权限、工作目录以及环境变量运行一个新的应用程序。下面是一个简单的C语言示例:
```c++
#include <windows.h>
// 要启动的应用程序路径和参数
LPCTSTR lpApplicationName = "notepad.exe"; // Notepad.exe路径
LPCTSTR lpCommandLine = TEXT("Hello World"); // 启动时传递给Notepad的命令行参数
STARTUPINFO si;
PROCESS_INFORMATION pi;
// 初始化STARTUPINFO结构
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.lpReserved = NULL;
si.lpDesktop = NULL;
si.lpTitle = NULL;
si.dwFlags = STARTF_USESHOWWINDOW; // 设置窗口可见
si.wShowWindow = SW_HIDE; // 显示模式,默认隐藏
// 初始化PROCESS_INFORMATION结构
ZeroMemory(&pi, sizeof(pi));
if (CreateProcess(lpApplicationName, // 应用程序名称
lpCommandLine, // 应用程序命令行
NULL, // 没有父进程的句柄
NULL, // 没有子进程的安全描述符
FALSE, // 这不是一个新线程
0, // 默认的进程属性
NULL, // 使用父进程的环境变量
NULL, // 无特定的工作目录
&si, // STARTUPINFO指针
&pi)) // PROCESS_INFORMATION指针
{
printf("Process launched successfully with PID %d\n", pi.dwProcessId); // 输出新进程ID
WaitForSingleObject(pi.hProcess, INFINITE); // 等待进程结束
CloseHandle(pi.hThread); // 关闭进程线程
CloseHandle(pi.hProcess); // 关闭进程句柄
}
else
{
printf("Failed to launch process.\n");
}
阅读全文