如果我們要安裝或升級(jí)的程序正在運(yùn)行谬哀,文件肯定會(huì)替換失敗,以下代碼可以提示用戶結(jié)束正在運(yùn)行的程序故爵,需要使用插件FindProcDLL.dll和KillProcdll玻粪。
FindProcDLL下載鏈接:https://pan.baidu.com/s/1AfgyXBkyr2XZTIFi3-1EXg
提取碼:u6bf
下載之后,解壓出來(lái)诬垂【⑹遥拷貝ANSI和Unicode目錄下的FindProcDLL.dll到NSIS安裝目錄下的 Plugins對(duì)應(yīng)目錄中。
image.png
KillProcdll下載鏈接: https://pan.baidu.com/s/1pu3E8ejDkG6kDh-1k1Y1Ow
提取碼:8fcn
下載之后结窘,解壓出來(lái)很洋。拷貝KillProcdll.dll到NSIS安裝目錄下的 Plugins對(duì)應(yīng)目錄中隧枫。
Function .Oninit
FindProcDLL::FindProc "Template.exe"
Pop $R0
IntCmp $R0 1 0 no_run
MessageBox MB_ICONSTOP "安裝程序檢測(cè)到 Template 正在運(yùn)行喉磁,請(qǐng)退出程序后重試"
Quit
no_run:
FunctionEnd
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您確實(shí)要完全移除 $(^Name) ,及其所有的組件官脓?" IDYES +2
Abort
FindProcDLL::FindProc "Template.exe"
Pop $R0
IntCmp $R0 1 0 no_run
MessageBox MB_ICONSTOP "安裝程序檢測(cè)到 Template正在運(yùn)行协怒,請(qǐng)退出程序后重試"
Quit
no_run:
FunctionEnd