NSIS打包,判斷當前程式是否在執行
阿新 • • 發佈:2018-12-31
編譯完成後會後兩個方法,一個是un.onInit,解除安裝程式;一個是un.onUninstSuccess解除安裝成功提示
我們一般在安裝程式的時候以及解除安裝,需要判斷一下,要不程式正在執行,刪不了它。
新增這兩個方法就行。
安裝時候判斷
Function .onInit
FindProcDLL::FindProc "${PRODUCT_NAME_EXE}.exe"
Pop $R0
IntCmp $R0 1 0 no_run
MessageBox MB_ICONSTOP "安裝程式檢測到$(^Name)正在執行,請退出程式後重試"
Quit
no_run:
FunctionEnd
解除安裝時候判斷
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你確實要完全移除$(^Name),其及所有的元件?" IDYES +2
Abort
FindProcDLL::FindProc "${PRODUCT_NAME_EXE}.exe"
Pop $R0
IntCmp $R0 1 0 no_run
MessageBox MB_ICONSTOP "安裝程式檢測到$(^Name)正在執行,請退出程式後重試"
Quit
no_run:
FunctionEnd