编译完成后会后两个方法,一个是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
里面需要用到一个FindProcDLL.dll文件