在Qt中,WinExec和ShellExecute是用于執行外部程序的函數。
UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow);
其中,lpCmdLine是要執行的程序的命令行參數,uCmdShow是程序窗口的顯示方式。返回值為程序的返回值。
使用示例:
WinExec("notepad.exe", SW_SHOW);
該示例會打開記事本程序。
HINSTANCE ShellExecute(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
其中,hwnd是父窗口的句柄,lpOperation是要執行的操作(如"open"、"edit"等),lpFile是要執行的文件的路徑,lpParameters是傳遞給程序的參數,lpDirectory是工作目錄,nShowCmd是窗口的顯示方式。返回值是程序的實例句柄。
使用示例:
ShellExecute(NULL, "open", "C:\\path\\to\\file.txt", NULL, NULL, SW_SHOW);
該示例會使用關聯的程序打開文件.txt。
需要注意的是,WinExec和ShellExecute是Windows特定的函數,若在其他平臺上運行,需要進行平臺的判斷和處理。另外,Qt也提供了跨平臺的QProcess類,可以用于執行外部程序。