1. 程式人生 > >Qt 呼叫外部exe的方法

Qt 呼叫外部exe的方法

近期做個快捷選單,需要呼叫外部.exe應用程式。

呼叫外部應用程式時分為阻塞和非阻塞,這裡採用非阻塞,因為想呼叫哪個程式就呼叫哪個程式嘛。

方法如下:

使用Qprocess的startDetached()方法,當前程式關閉時,呼叫的外部程式能夠照常執行。

#include <QProcess> QProcess::startDetached("E:\\Qt\\qtcreator-2.4.1\\bin\\qtcreator.exe",QStringList());

這時在Windows系統下,所以路徑採用的是\\。

需要注意的是startDetached()函式的引數(參見

http://qt-project.org/doc/qt-4.8/qprocess.html#startDetached-2),第一個引數是外部exe路徑,當exe路徑中含有空格時,就需要用到第二個引數,如果外部應用程式只需要exe這一個就可以開啟時,第二個引數寫成QStringList()就可以了。

當外部應用程式出了exe還需要其他的檔案才能開啟時那麼將其他檔案路徑寫進QStringList()中。例如ENVI軟體:

QProcess::startDetached(tr("E:\\Study Program\\ITT\\IDL71\\bin\\bin.x86\\idlrt.exe"),QStringList("
E:\\Study Program\\ITT\\IDL71\\lib\\hook\\envi.sav"));

如果只要前面的exe那是打不開的,還需要加上第二個引數。看看envi快捷方式的屬性吧,目標檔案裡就有兩個檔案。


from:  http://www.cnblogs.com/Romi/archive/2012/05/03/2480374.html