首先,FindProcDLL这个dll已经没有用了,因为这个查了一天多,都要崩溃了,网上大部分都是用的这个,所以并没有意识到dll已经没有效果了。用nsProcess这个dll才是正确的。下面直接放代码,可用的:
Function .onInit
nsProcess::_FindProcess "aidi.exe"
Pop $R0
IntCmp $R0 0 running no_running no_running
running:
MessageBox MB_ICONQUESTION|MB_YESNO "安装程序检测到 ${PRODUCT_NAME} 正在运行,是否强行关闭并继续安装?" IDYES dokill IDNO stopit
no_running:
GoTo endding
dokill:
nsProcess::_CloseProcess "aidi.exe"
Pop $R0
GoTo endding
stopit:
Abort
endding:
nsProcess::_Unload
FunctionEnd
;开始卸载时检查:
Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除${PRODUCT_NAME} ,及其所有的组件?" IDYES +2
nsProcess::_FindProcess "aidi.exe"
Pop $R0
IntCmp $R0 0 running no_running no_running
running:
MessageBox MB_ICONQUESTION|MB_YESNO "安装程序检测到 ${PRODUCT_NAME} 正在运行,是否强行关闭并继续卸载?" IDYES dokill IDNO stopit
no_running:
GoTo endding
dokill:
nsProcess::_CloseProcess "aidi.exe"
Pop $R0
GoTo endding
stopit:
Abort
endding:
nsProcess::_Unload
FunctionEnd