調用外部應用程序時分為阻塞和非阻塞,這里采用非阻塞,因為想調用哪個程序就調用哪個程序
方法如下:
使用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快捷方式的屬性吧,目標文件里就有兩個文件。