下载 .exe 安装文件(NSIS 安装)并通过 chrome 打开它以执行它时,ExecWait 不起作用。
我正在运行一个批处理文件,它会在安装过程中杀死浏览器进程,因为我通过 chrome(下载管理器)打开了 exe 文件,ExecWait 认为执行已经结束,因此不要等待下一个 ExecWait 调用即将到来在调用执行批处理文件的行之后。它认为 chrome 是父进程,所以它退出了安装。
有没有办法让 ExecWait 知道虽然我终止了 chrome 浏览器(或任何其他浏览器)进程以继续安装?只等待我通过 NSIS 脚本执行的 .exe 文件?
PS - 从浏览器(下载管理器)安装 .exe 文件时,它工作正常。
编辑(我已包含代码):
# 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 文件,我编译成一个 .exe 文件)内部,这段代码:
@echo off
taskkill /F /IM chrome.exe /T
如果您通过 chrome 下载 setup.exe 并从底部栏(下载管理器)执行它,它将执行 install.exe(关闭 chrome.exe)但会跳过以下行:
Delete $INSTDIR\install.exe
ExecWait $INSTDIR\test.exe
Delete $INSTDIR\test.exe