91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何獲取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
宜兰县| 绥滨县| 宁河县| 巧家县| 宁城县| 潼关县| 于田县| 江油市| 宜都市| 永康市| 盐山县| 拜城县| 星子县| 雷山县| 安远县| 南木林县| 达孜县| 乌兰浩特市| 曲靖市| 禹州市| 志丹县| 旬邑县| 高碑店市| 珲春市| 色达县| 宜兰县| 芜湖县| 平遥县| 正宁县| 黄浦区| 万载县| 泗阳县| 密山市| 越西县| 黑龙江省| 邢台市| 金塔县| 咸宁市| 西吉县| 同心县| 杨浦区|