QT 通过Process调用外部执行文件

由于项目中使用到多种不同的驱动文件,考虑到程序的兼容性,将不同的驱动文件做成单独的执行文件,在主程序中调用驱动执行文件。
打开外部程序的方法:

  QProcess *process=new QProcess;
  process->startDetached(FilePath,QStringList());
  process->waitForStarted();

FilePath为当前驱动执行文件的绝对地址,一般将驱动文件放在主程序执行文件的同级目录。
关闭外部执行文件的方法,直接调用process->Stop();
奇怪的是,有的可以被Stop关掉,有的关不掉?!暂时找不到原因,于是,在关闭程序时,用Cmd强行关掉了任务管理器中的任务,毕竟,我的驱动名称都是可以获取到的,通过驱动名称关闭任务管理器中的任务,好像很蠢,但是,目前找不到别的解决方法啦啦啦啦啦~
调用CMD关闭任务的方法:
process1->execute(“TASKKILL /IM TaskDriver.exe /F”);
.exe文件不同的时候,将字符串拼接一下,也是可以的。

猜你喜欢

转载自blog.csdn.net/m0_37722666/article/details/86510970