1. 程式人生 > >Qt中QProcess 開啟外部程序

Qt中QProcess 開啟外部程序

Qt中QProcess開啟外部程式,比較常用的一種方式就是直接呼叫start()函式,另一種是直接呼叫startDetached()函式,但是第二種方式啟動的外部程序,在啟動之後就和啟動外部程序的程式分離了,這樣就無法後續進行更多的控制,比如無法訪問啟動的外部程序的狀態,和無法在程式內部關閉外部程式,只能手動關閉。因此,start函式的作用更強。

但是最近遇到了一個問題,就是start函式如果啟動的是一個圖形介面程式,那麼就可以正常的顯示介面,但是如果用start函式直接啟動一個控制檯程式,那麼這個控制檯程式,可以執行,但是無法顯示控制檯介面(在windows系統下是這樣,其他系統為測試,不知道是不是會有同樣問題),在網上百度了很久,也沒有一個好的解決辦法。但是今天摸索出來一個解決方式,在windows系統下,直接使用下面這種方式

QProcess process=new QProcess;
process->start("cmd.exe",QStringList()<<"/k"<<"start"<<"sub.exe");