- QProcess::execute():以阻塞的方式打开进程,当进程执行完后才会执行该进程后面的程序
- QProcess::start():以子进程的方式打开进程,与打开的进程有关系(父子关系)
QProcess::startDetached():以隔离的方式打开进程,与打开它的进程无关系
打开进程
QProcess process;
process.start("进程名.exe");
process.execute("进程名.exe");
process.startDetached("进程名.exe");
- cmd 获取进程信息
//引入头文件
#include <QProcess>
QProcess process;
process.start("tasklist");
QByteArray result = process.readAllStandardOutput();
//得到进程列表
QString result1 = result;
- cmd 终止进程
终止进程名为test.exe的进程
QStringList params;
params << "-f" << "-im" << "test.exe";
QProcess process;
process.start("taskkill",params);
备注cmd命令:
tasklist -fi “imagename eq test.exe” – 显示进程名为test.exe的进程信息
tasklist -fi “imagename ne test.exe” – 显示进程名不为test.exe的进程信息
tasklist -fi “pid eq 1958” – 显示进程号为1958的进程信息
taskkill -f -pid 1958 – 强制终止进程号为1958的进程
taskkill -f -im test.exe – 强制终止所有进程名为test.exe的进程树
taskkill -f -fi “imagename eq test.exe” –强制终止所有进程名为test.exe的进程树