Qt QProcess啟動和關閉外部程序


    //適用於關閉后台進程的方法
QString c = "taskkill /im notepad.exe /f"; int pInt = QProcess::execute(c); //關閉后台notepad.exe進程,阻塞式運行,一直占用cpu,成功返回0,失敗返回1 qDebug()<<"pInt:"<<pInt;

一、啟動外部程序的兩種方式:
(1)一體式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)
        外部程序啟動后。將隨主程序的退出而退出。
(2)分離式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
        外部程序啟動后,當主程序退出時並不退出。而是繼續執行。

//1-不帶空格。能夠啟動
process->start("F:/AppInst/115/115com/115com.exe");
//2-帶空格,無法啟動
process->start("C:/Program Files/HaoZip/HaoZip.exe");
//3-帶空格,使用帶參模式。能夠啟動
process->start("C:/Program Files/HaoZip/HaoZip.exe", QStringList("C:/Program Files/HaoZip/HaoZip.exe"));

 

 

Qt 執行cmd命令

QProcess p(0);
p.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com");
p.waitForStarted();
p.waitForFinished();
QString strTemp=QString::fromLocal8Bit(p.readAllStandardOutput());

QMessageBox testMassage;
testMassage.setText(strTemp);
testMassage.exec();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM