如何在nsis中获取其他应用程序的退出代码
Posted
技术标签:
【中文标题】如何在nsis中获取其他应用程序的退出代码【英文标题】:how to get the exit code of other application in nsis 【发布时间】:2012-01-30 10:35:49 【问题描述】:在我的 .nsi 文件中,我正在调用 ExecWait '"$INSTDIR\application.exe" ' $0
。在 application.exe 中,我返回成功和失败的退出代码。如何在 .nsi 文件中捕获这些退出代码。
【问题讨论】:
【参考方案1】:如果执行ExecWait出错,则传入的用户变量的内容是未定义的。
要简单地检查程序是否正确执行,请检查错误标志。 (顺便说一句,NSIS 预计成功为零,错误为非零)
ClearErrors
ExecWait '"$INSTDIR\application.exe"'
IfErrors 0 noError
; Handle error here
noError:
【讨论】:
【参考方案2】:应用程序的退出代码将存储在作为第二个参数传递给 ExecWait 的变量中,在您的示例中为 $0。
http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.1.4
【讨论】:
我将整数 1 作为成功传递,整数 2 作为失败传递,但是当我在 ExecWait 代码之上执行时,我总是得到 0 作为它的值。你能告诉我我应该如何在应用程序中发送返回值(C++ 代码) 我不是 c++ 专家,但我想使用返回函数是指定退出代码的方法 我不需要确切地知道 C++,任何其他编程语言也可以。我从我的应用程序的功能返回错误代码。我在我的 .nsi 文件中调用该应用程序,但没有收到我发送的错误代码。请帮帮我 你能粘贴一段你的 c++ 程序的main()
的摘录吗?基本上,在代码的末尾,如果你放了一个return 42;
,那么应该在你给ExecWait
的变量中捕获42个值以上是关于如何在nsis中获取其他应用程序的退出代码的主要内容,如果未能解决你的问题,请参考以下文章
NSIS 构建不会在 Windows 上安装 Electron 应用程序。安装程序静默退出并产生 1620 错误