-1

您好我正在尝试使用 C++ 应用程序中的 ShellExecuteEx 运行我的安装程序。我能够让我的安装程序运行。如果我随时在我的 NSIS 安装程序上单击取消,我如何从 C++ 应用程序中捕获它并且打印安装失败。

我试过这样

if((UINT)ShExecInfo.hInstApp <= SE_ERR_DDETIMEOUT ) 
{
    fprintf(fp, "Failed to start the installer \n");
    exit(-1);   
}

但没有运气,我尝试打印ShExecInfo.hInstApp内容,结果是 42 号。有什么想法吗?

4

1 回答 1

1

hInstApp保存启动期间发生的错误(如果有)。它与应用程序关闭无关。

您想使用 来查看安装程序进程的退出代码,如果您在 中设置标志,则该代码GetExitCodeProcess存储在中。ShExecInfo.hProcessSEE_MASK_NOCLOSEPROCESSShExecInfo.fMask

您必须检查 NSIS 文档以了解用户点击取消时返回的退出代码。

于 2013-07-31T18:19:38.250 回答