117.info
人生若只如初见

如何获取ShellExecute调用的exe的返回值

要获取ShellExecute调用的exe的返回值,可以使用ShellExecuteEx函数来替代ShellExecute函数,并使用PROCESS_INFORMATION结构来获取进程的句柄和ID。然后,使用WaitForSingleObject函数等待进程的结束,最后使用GetExitCodeProcess函数获取进程的返回值。

以下是示例代码:

#include 
#include 
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函数。

未经允许不得转载 » 本文链接:https://www.117.info/ask/feadeAzsLBABUBVc.html

推荐文章

  • ShellExecute的参数有哪些

    ShellExecute函数的参数如下: hwnd:指向父窗口的句柄,可以是窗口、对话框或者控制。 lpOperation:指定要执行的操作,可以是"open"、“edit”、"print"等。 l...

  • ShellExecute启动外部程序参数详细介绍

    ShellExecute是Windows API中的一个函数,可以用于启动外部程序。它的原型如下:
    HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFil...

  • ShellExecute详细用法

    ShellExecute是一个Windows API函数,用于打开外部应用程序、打开URL链接或者执行系统命令。
    ShellExecute的函数原型如下:
    HINSTANCE ShellExecute( ...

  • ShellExecute的权限要求分析

    ShellExecute函数是用来执行外部程序或打开文件的API函数,其权限要求取决于要执行的程序或文件的权限设置。一般来说,ShellExecute函数本身并不需要特殊的权限,...

  • 如何使用Stretchblt获取调整位图图像大小的方法

    使用StretchBlt函数可以调整位图图像的大小。以下是使用StretchBlt函数的步骤: 创建源位图和目标位图的设备上下文句柄。 HDC hdcSrc = https://www.yisu.com/as...

  • Excel 控件中的 EMBED 函数是什么意思

    在 Excel 控件中,EMBED 函数用于将一个对象嵌入到工作表中。它可用于嵌入其他 Office 文档、PDF、图像、音频、视频等文件。
    EMBED 函数的语法如下:
    ...

  • 什么是app-ads.txt,如何在AdMob中实施

    app-ads.txt是一种用于验证应用程序和广告库存之间的关联关系的文本文件。它是Interactive Advertising Bureau(IAB)提出的一项行业标准,旨在帮助广告买家确认...

  • Argumentexception未处理..如何解决

    Argumentexception是一种异常类型,表示方法参数传递错误。要解决Argumentexception未处理的问题,可以尝试以下几种方法: 异常捕获和处理:使用try-catch语句块...