QT cmd判断进程是否存在 获取进程信息 关闭进程

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • QProcess::execute():以阻塞的方式打开进程,当进程执行完后才会执行该进程后面的程序
  • QProcess::start():以子进程的方式打开进程,与打开的进程有关系(父子关系)
  • QProcess::startDetached():以隔离的方式打开进程,与打开它的进程无关系

  • 打开进程

QProcess process;
process.start("进程名.exe");
process.execute("进程名.exe");
process.startDetached("进程名.exe");
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4
  • cmd 获取进程信息
//引入头文件
#include 

QProcess process;
process.start("tasklist");
QByteArray result = process.readAllStandardOutput();
//得到进程列表
QString result1 = result;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • cmd 终止进程 
    终止进程名为test.exe的进程
QStringList params;
params << "-f" << "-im" << "test.exe";
QProcess process;
process.start("taskkill",params);
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

备注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的进程树

你可能感兴趣的:(QT)