QProcess类 :(qt启动一个外部exe程序,带参exe程序,cmd命令)

执行cmd命令

QProcess program;
QString cmd = "shutdown -s -t 120";
program.start(cmd);
program.waitForFinished();

启动一个外部exe程序示例

QProcess program;
QString cmd = "C:\\meetsystem\\MeetClient\\bin\\MeetClient2.exe";
program.start(cmd);
program.waitForFinished();

启动一个带参数的exe程序示例

//示例: ffmpeg.exe -i C:\\xxx\\1.mp4 C:\\xxx\\1.mkv
QProcess program;
QString cmd = "ffmpeg.exe";
QStringList args;

args.append("-i");
args.append("C:\\Users\\admin\\Desktop\\video\\1.mp4");
args.append("C:\\Users\\admin\\Desktop\\video\\1.mkv");
program.start(cmd, args);
program.waitForFinished();
  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Qt启动外部程序可以使用QProcess。下面是一个简单的示例: ```cpp #include <QCoreApplication> #include <QProcess> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 创建一个QProcess对象 QProcess process; // 设置要启动程序名称和参数 QString program = "notepad.exe"; QStringList arguments; arguments << "test.txt"; // 启动外部程序 process.start(program, arguments); // 等待程序退出 process.waitForFinished(); return a.exec(); } ``` 在上面的示例中,我们使用QProcess创建了一个名为process的对象,然后设置了要启动程序名称和参数。最后,我们调用start()方法来启动外部程序,并使用waitForFinished()方法等待程序退出。 注意:在Windows系统中,如果要启动程序不在系统路径中,需要指定程序的完整路径。例如: ```cpp QString program = "C:/Program Files (x86)/Microsoft Office/root/Office16/winword.exe"; ``` 另外,如果要启动程序需要管理员权限,需要在程序中加入以下代码: ```cpp process.setCreateProcessArgumentsModifier([](QProcess::CreateProcessArguments *args){ args->flags |= CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP; args->startupInfo->dwFlags &= ~STARTF_USESTDHANDLES; args->startupInfo->cb = sizeof(STARTUPINFOEXW); args->startupInfo->lpAttributeList = nullptr; }); process.setProcessChannelMode(QProcess::MergedChannels); process.start("C:/Windows/System32/cmd.exe", QStringList() << "/c" << "netsh interface set interface \"以太网\" admin=enable"); ``` 这里的代码是启动一个命令行窗口,并以管理员权限执行了一个命令。注意:这种方法只在Windows系统中有效。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值