Qt判斷和打開進程(windows端),運行,檢測,中止


windows端的Qt程序往往需要打開外部程序(如:prog.exe),並且需要確定這個外部程序是唯一打開的。

1、判斷系統中是否存在prog.exe

void judge()

{

QProcess tasklist;

tasklist.execute("tasklist", QStringList()<<"-fi"<<"imagename eq prog.exe");

}

 

2、終止系統中的prog.exe進程

void kill()

{

QProcess taskkill;

taskkill.execute("taskkill", QStringList()<<"-im"<<"prog.exe"<<"-f"); 

}

 

3、打開外部程序prog.exe

void open()

{

QProcess newProg;

newProg.start("prog.exe", QStringList()<<"command");

}

 

番外1:

QProcess::execute():          ---- 以阻塞方式打開外部程序,只有當外部程序執行完后才繼續往后執行現程序。其中,外部程序的標准輸出、標准錯誤都是重定向到現程序的標准輸出和標准錯誤。

QProcess::start():               ---- 以子進程的方式打開外部程序,外部進程和現進程執行互不干擾,但外部進程的父進程是現進程。

QProcess::startDetached():---- 以分離方式打開外部程序,外部進程和現進程執行互不干擾,外部進程的父進程是系統的init進程。

 

番外2:

1.  tasklist -fi "imagename eq prog.exe"    -- 顯示進程名為prog.exe的進程信息

2.  tasklist -fi "imagename ne prog.exe"    -- 顯示進程名不為prog.exe的進程信息

3.  tasklist -fi "pid eq 1111"                        -- 顯示進程號為1111的進程信息

4.  taskkill -f -pid 1111                               -- 強制終止進程號為1111的進程

5.  taskkill -f -im prog.exe                          -- 強制終止所有進程名為prog.exe的進程樹

6.  taskkill -f -fi "imagename eq prog.exe" -- 強制終止所有進程名為prog.exe的進程樹

http://blog.csdn.net/zuijinhaoma8/article/details/42061243


免責聲明!

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



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