C++如何做到打开指定程序
时间: 2024-10-10 22:08:55 浏览: 25
C++使用指定的程序打开指定的文件
4星 · 用户满意度95%
在C++中,你可以使用`std::system`函数或者`CreateProcess` API来打开另一个程序。这里是一个基本的例子,展示如何通过命令行路径来启动一个外部应用程序:
```cpp
#include <cstdlib>
#include <windows.h> // 对于Windows平台
// Windows平台
void openProgram(const std::string& programPath) {
STARTUPINFO si = {0};
PROCESS_INFORMATION pi;
si.cb = sizeof(si);
si.lpDesktop = NULL; // 如果需要,可以设置工作目录
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
// 创建进程信息
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(programPath.c_str(), // 要运行的程序路径
NULL, // 空字符串作为命令行参数
NULL, // 拥有创建进程的线程的当前安全令牌的指针
NULL, // 父进程的安全令牌的指针
FALSE, // 是否继承父进程的句柄
0x00000000 | CREATE_NEW_CONSOLE, // 新建一个新窗口
NULL, // 无环境变量
&si, // 启动信息结构
&pi)) { // 进程句柄
// 处理错误
std::cerr << "Failed to start program: " << GetLastError() << std::endl;
} else {
// 关闭主线程,让创建的新进程运行
CloseHandle(pi.hThread);
WaitForSingleObject(pi.hProcess, INFINITE); // 等待直到进程结束
CloseHandle(pi.hProcess);
}
}
// Linux平台(使用shell命令)
void openProgram(const std::string& programPath) {
std::string cmd = "exec " + programPath; // 添加shell的exec命令前缀
system(cmd.c_str()); // 使用系统调用执行命令
}
阅读全文