中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何獲取ShellExecute調用的exe的返回值

小云
220
2023-09-26 02:58:41
欄目: 編程語言

要獲取ShellExecute調用的exe的返回值,可以使用ShellExecuteEx函數來替代ShellExecute函數,并使用PROCESS_INFORMATION結構來獲取進程的句柄和ID。然后,使用WaitForSingleObject函數等待進程的結束,最后使用GetExitCodeProcess函數獲取進程的返回值。

以下是示例代碼:

#include <windows.h>
#include <shellapi.h>
int main()
{
SHELLEXECUTEINFO sei = { 0 };
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = L"open";
sei.lpFile = L"C:\\path\\to\\your.exe";
sei.lpParameters = L"parameters";
sei.nShow = SW_HIDE;
if (ShellExecuteEx(&sei))
{
WaitForSingleObject(sei.hProcess, INFINITE);
DWORD exitCode = 0;
GetExitCodeProcess(sei.hProcess, &exitCode);
// 使用exitCode來獲取返回值
CloseHandle(sei.hProcess);
}
return 0;
}

在這個示例代碼中,我們創建了一個SHELLEXECUTEINFO結構,并設置了需要執行的exe的路徑,參數等信息。然后使用ShellExecuteEx函數來執行命令,并獲取進程的句柄和ID。接著,使用WaitForSingleObject函數等待進程的結束,使用GetExitCodeProcess函數獲取進程的返回值,最后關閉進程的句柄。

請注意,ShellExecuteEx函數在Windows XP及更高版本上可用,如果你的應用程序需要兼容更早的Windows版本,可以考慮使用CreateProcess函數來替代ShellExecuteEx函數。

0
西林县| 西乡县| 耒阳市| 上饶县| 巴青县| 迁西县| 武威市| 扶风县| 荆州市| 镇赉县| 黄石市| 基隆市| 泰和县| 尼木县| 肇源县| 马关县| 曲阳县| 灌南县| 江永县| 洱源县| 永和县| 彰武县| 青浦区| 胶南市| 潜江市| 慈利县| 莱芜市| 大余县| 法库县| 天镇县| 陇南市| 甘泉县| 方城县| 长沙市| 印江| 武定县| 东莞市| 民县| 屯留县| 象州县| 盘锦市|