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