簡體   English   中英

NSIS安裝程序后啟動可執行文件

[英]Starting executable after NSIS installer

在我的安裝程序結束時,我想啟動一個.exe文件,然后結束安裝。 我已經嘗試了各種方法來啟動這個exe,如下所示,但它們都沒有完全正確。 .exe文件顯示登錄屏幕,用戶輸入用戶名和密碼,並啟動主應用程序。

當我雙擊文件夾中的.exe時,它會顯示登錄提示,我輸入憑據,然后應用程序啟動。 在安裝程序中嘗試了以下方法來復制此過程:

ExecDos異步

ExecDos::exec /NOUNLOAD /ASYNC '$Path${APP_FILE_NAME}'
Sleep 30000

ExecShell

ExecShell "" '"$Path${APP_FILE_NAME}"'

ExecDos

ExecDos::exec '$Path${APP_FILE_NAME}'

nsExec

nsExec::exec '$Path${APP_FILE_NAME}'

理想情況下,我想讓異步調用工作,這樣它就會啟動登錄屏幕然后結束安裝程序。

所有上述方法都按預期顯示登錄屏幕,但登錄到應用程序后,主應用程序只是位於一個空白的灰色屏幕上......如果我只是雙擊$ Path文件夾中的.exe,我就看不到了並正常登錄。

這些調用啟動.exe是否有問題?

問題可能出在你的應用上,而不是NSIS ......

如果應用程序依賴於“正確”的工作目錄,則需要首先使用SetOutPath:

SetOutPath $INSTDIR
ExecShell "" '"$INSTDIR\myapp.exe"'

在安裝程序結束時執行主應用程序是有問題的,因為它可能最終以錯誤的用戶身份運行應用程序(UAC打開,以非管理員身份登錄並使用管理員用戶提升(假設您未設置RequestExecutionLevel或使用RequestExecutionLevel admin ))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM