當下載.exe安裝文件(NSIS安裝)並通過chrome打開它以執行它時,ExecWait不起作用。通過Chrome瀏覽器安裝安裝文件時,NSIS ExecWait無法等待
我運行一個批處理文件,從而殺滅安裝的瀏覽器裏面的過程, 因爲我通過瀏覽器(下載管理器)打開exe文件的ExecWait認爲,執行已經結束,因此這麼想的等待下一個ExecWait將調用執行該批處理文件的行。它認爲chrome是父進程,所以它會退出安裝。
有沒有辦法讓ExecWait知道盡管我終止了Chrome瀏覽器(或任何其他瀏覽器)的進程來繼續安裝?並只等待我通過NSIS腳本執行的.exe文件?
P.S - 當從瀏覽器(下載管理器)安裝.exe文件時,它工作正常。
EDIT(我已經包括代碼):
# define the name of the installer
outfile "setup.exe"
Name "Example"
installDir $LOCALAPPDATA\Test
# default section
section
setOutPath $INSTDIR
File install.exe
File test.exe
ExecWait $INSTDIR\install.exe
Delete $INSTDIR\install.exe
ExecWait $INSTDIR\test.exe
Delete $INSTDIR\test.exe
sectionEnd
和INSTALL.EXE的內部(其一個bat文件的I編譯成.exe文件)這樣的代碼:
@echo off
taskkill /F /IM chrome.exe /T
如果您通過chrome下載setup.exe並從底欄(下載管理器)執行setup.exe,它將執行install.exe(關閉chrome.exe),但會跳過下列行:
Delete $INSTDIR\install.exe
ExecWait $INSTDIR\test.exe
Delete $INSTDIR\test.exe
你的症狀很奇怪。你能用'ExecWait'來發表一些代碼來顯示nsis的部分嗎? – Seki
我已經包含了nsis代碼和說明。謝謝! –
爲什麼使用重命名批處理文件到.exe的巨大黑客攻擊? – Anders