原文 NSIS:判断程序是否运行并进行卸载
今天在评论里看到网友说要一个这样的功能,就简单写了一个,本来想做360杀手来着,但遗憾的是我从来不用360的东西,所在电脑上也没有360相关的软件进行测试,所以就写了一个“金山杀手”,代码是通用的,稍稍进行一下修改就成“360杀手”啦,哈哈~~
代码未作详细测试,但应该没有太大的问题,这里只是提一个思路,如有问题,大家有兴趣的自行修改吧。
代码附上:
01 |
SetCompressor /SOLID lzma |
07 |
BrandingText "WwW.Flighty.CN" |
09 |
;以下为检测运行文件方式,有一定局限性,不推荐。 |
11 |
FindProcDLL::FindProc "kxetray.exe" |
14 |
MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none |
16 |
ExecWait 'C:\Program Files\Kingsoft\KSafe\uninst.exe' |
22 |
;以下为注册表检测方式,两种方式可以选其一,不过,推荐使用注册表检测方式。 |
24 |
ReadRegStr $R2 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\金山卫士" "UninstallString" |
27 |
MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none |
|