2016-07-06 94 views
0

嗨,我有問題與execwait。下面是一些代碼:NSIS ExecWait失敗,錯誤代碼-1073741515

SetOutPath "$INSTDIR\myDir" 
ExecWait '"$INSTDIR\myDir\Myexe.exe"' $0 

這種失敗,並在$ 0裏的錯誤代碼是-1073741515 路徑和exe文件存在。 如果我第二次運行相同的設置此代碼工作正常,exe被執行並且沒有設置錯誤代碼。 我在做什麼錯?任何想法?

+0

沒有DLL丟失。我可以從安裝目錄運行該exe文件。 – infingy

回答

0

這可能是Myexe.exe的問題,而不是NSIS。可以肯定,你必須搞清楚,如果CreateProcess調用內部ExecWait故障時,或者這僅僅是從程序退出代碼:

!include LogicLib.nsh 

Section 
ClearErrors 
ExecWait '"$SysDir\Charmap.exe"' $0 
${If} ${Errors} 
    MessageBox mb_iconstop "Unable to start program!" 
${Else} 
    MessageBox mb_ok "Program started successfully, the program exited with code $0" 
${EndIf} 
SectionEnd 

如果你得到「程序成功啓動」的消息,但該計劃仍然失敗,那麼也許有一些需要註冊的程序才能成功運行,並且在下次運行時註冊就完成了。

+0

感謝您的回覆! 我得到的是「程序啓動成功,程序退出代碼-1073741515」 但我不明白的是,雖然messagebox仍然打開,我可以從安裝目錄執行exe文件,這讓我想到那裏沒有登記失蹤。 – infingy

+0

您可以嘗試使用Process Monitor監控它,看看是否可以在第二次運行時發現任何差異。 – Anders

+0

我無法識別進程監視器中的任何東西.... 但是我在execWait命令之前添加了一個消息框。那時我可以從cmd執行exe而不會有任何問題。 但是,當我繼續安裝,execWait會給我錯誤信息。怎麼可能? 我迷路了。我不知道問題是什麼。 – infingy

相關問題