• 8107阅读
  • 3回复

[提问]qprocess 启动的外部exe ,怎么在退出界面程序时 kill掉进程? [复制链接]

上一主题 下一主题
离线yangky281
 

只看楼主 倒序阅读 楼主  发表于: 2015-05-28
— 本帖被 XChinux 从 其它技术开发讨论区 移动到本区(2015-07-28) —
qt 5.4   中怎么用qprocess 启动的外部exe ,在退出界面程序时 kill掉进程

我试了网上说的方法,退出是 close  或者kill  或者   kill 之后close  都不行。有那位写过这方面的提供一下代码参考参考,先谢谢了先
离线yangky281

只看该作者 1楼 发表于: 2015-05-28
qt 5.4   中怎么用qprocess 启动的外部exe ,在退出界面程序时 kill掉进程?

我试了网上说的方法,退出是 close  或者kill  或者   kill 之后close  都不行。有那位写过这方面的提供一下代码参考参考,先谢谢了先

补充代码

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QProcess>
  5. namespace Ui {
  6. class MainWindow;
  7. }
  8. class MainWindow : public QMainWindow
  9. {
  10.     Q_OBJECT
  11. public:
  12.     explicit MainWindow(QWidget *parent = 0);
  13.     ~MainWindow();
  14. private slots:
  15.     void on_pushButton_clicked();
  16.     void on_pushButton_2_clicked();
  17. private:
  18.     Ui::MainWindow *ui;
  19.     QProcess cmd;
  20. };
  21. #endif // MAINWINDOW_H




  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4.     QMainWindow(parent),
  5.     ui(new Ui::MainWindow)
  6. {
  7.    // cmd=new QProcess;
  8.     ui->setupUi(this);
  9. }
  10. MainWindow::~MainWindow()
  11. {
  12.     delete ui;
  13. }
  14. void MainWindow::on_pushButton_clicked()
  15. {
  16.     cmd.start("C:/Users/Auser/test1/au.exe");
  17.     //start
  18. }
  19. void MainWindow::on_pushButton_2_clicked()
  20. {
  21.     cmd.kill();
  22.             if(!cmd.waitForFinished(100)){};
  23.     //stop
  24. }


离线yeguoxiong

只看该作者 2楼 发表于: 2015-05-28
if(QFile::exists("MService.exe"))        {            QProcess process(this);            process.start("taskkill /im MService.exe /t /f");            process.waitForStarted();            process.waitForFinished();            process.startDetached("MService.exe");            process.waitForStarted();            process.waitForFinished();        }
4条评分好评度+1贡献值+1金钱+5威望+1
yangky281 好评度 +1 - 2015-05-28
yangky281 贡献值 +1 - 2015-05-28
yangky281 威望 +1 - 2015-05-28
yangky281 金钱 +5 - 2015-05-28
离线yangky281

只看该作者 3楼 发表于: 2015-05-28
回 yeguoxiong 的帖子
yeguoxiong:if(QFile::exists("MService.exe"))        {            QProcess process(this);            p .. (2015-05-28 09:59) 

能现实我要的功能了,很酷,谢谢
快速回复
限100 字节
 
上一个 下一个