1. 程式人生 > >NSIS打包,判斷當前程式是否在執行

NSIS打包,判斷當前程式是否在執行

編譯完成後會後兩個方法,一個是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