[英]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.