亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何獲取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
顺平县| 招远市| 界首市| 奉节县| 辽阳市| 左云县| 永德县| 湖北省| 萝北县| 子长县| 东明县| 曲周县| 涟源市| 永济市| 安阳县| 神木县| 通辽市| 石首市| 普安县| 潍坊市| 商水县| 彭州市| 屯昌县| 定远县| 新昌县| 武宁县| 寿宁县| 赣榆县| 翁牛特旗| 格尔木市| 泽库县| 华容县| 柘荣县| 广宗县| 湛江市| 邢台县| 东兰县| 涿州市| 临桂县| 博湖县| 抚远县|