我的做法:在用户确定要卸载程序后,待用bat,执行停止服务,清除注册表的bat文件
Function un.onInit
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件 ? $INSTDIR" IDYES +2
Abort
SetOutPath '$INSTDIR'
ExecWait '$INSTDIR\bin\UninstallApp-NT.bat'
FunctionEnd
如果BAT需要参数时,要把带参数的命令写入另外一个新的BAT中,执行新BAT:
B.bat内容:
CALL A.bat install
NSIS 脚本:
SetOutPath '$INSTDIR'
ExecWait '$INSTDIR\B.bat'
执行bat 会有个cmd的黑框一闪,
网上说用vb 可以消除,附上牛人地址: