C++ CreateProcess 怎么调用bat批处理
时间: 2025-06-16 20:53:52 浏览: 14
在C++中,`CreateProcess`函数通常用于通过系统API来执行外部程序,包括批处理文件(bat)。这个函数定义在Windows API库中,`Windows.h`头文件里有声明。以下是基本步骤:
```cpp
#include <windows.h>
int main() {
STARTUPINFO si = {0};
PROCESS_INFORMATION pi;
// 初始化STARTUPINFO结构体,设置命令行参数和标志
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW; // 设置窗口显示模式
si.wShowWindow = SW_HIDE; // 显示为隐藏窗口
// 创建进程信息结构体
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
// 定义要执行的bat文件路径及参数
char szCmd[MAX_PATH] = "cmd.exe /c start \"批处理文件名.bat\"";
if (!CreateProcess(NULL, // 父进程句柄,NULL表示当前进程
szCmd, // 进程命令字符串
NULL, // 拥有创建权限的父进程令牌
NULL, // 继承父进程的令牌
TRUE, // 是否继承已打开的句柄
0, // 初始优先级
NULL, // 无环境变量
NULL, // 默认工作目录
&si, // 启动信息指针
&pi)) { // 进程信息指针
// 处理错误
printf("CreateProcess failed with error code: %d\n", GetLastError());
return -1;
}
// 等待进程结束
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭进程和其关联的管道
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
```
在这个例子中,我们首先创建一个`cmd.exe`子进程,它会执行指定的批处理文件("批处理文件名.bat")。`SW_HIDE`使得新启动的命令提示符窗口不会立即可见。
阅读全文
相关推荐


















