QT调用外部程序有三种大的方法:
(1)通过调用系统函数,system阻塞调用,WinExec非阻塞调用:
1、system("notepad.exe"); // 阻塞式调用
system函数可以调用外部程序,要以.exe为结尾,也就是完整的可执行文件名。调用时,它先调用cmd.exe,再由cmd中调用notepad.exe。所以执行这条语句时,可以看到cmd的窗口,然后再看到notepad(记事本)打开。同时原有进程被阻塞,只有关闭notepad后,才可以关闭调用的主进程。另外需要说明的是,调用的可执行路径的名称中不能有空格,否则cmd解释时会报错。如下面的网易云音乐执行时就会报错。
“C://Program Files (x86)//Netease//CloudMusic//cloudmusic.exe”
还有一点,就是路径中的"\\"。但这可能是我的错误习惯造成的,一定要用"//"。正确写法如下:“C://Netease//CloudMusic//cloudmusic.exe”
2、WinExec("mydirectory\\myApp.exe",SW_SHOW); // 非阻塞式调用
首先,调用此函数时,要包括头文件#include <Windows.