请把轻狂志网址 www.flighty.cn 加入收藏夹,其他俱为假冒,谨防被骗!赞助请点 这里!找东东请用右边的搜索 ===>
05 2013-09

NSIS:判断程序是否运行并进行卸载

作者:少轻狂 | 发布:2011-06-17 | 更新:2013-09-05 | 分类:部署 | Disposition | 热度:

今天在评论里看到网友说要一个这样的功能,就简单写了一个,本来想做360杀手来着,但遗憾的是我从来不用360的东西,所在电脑上也没有360相关的软件进行测试,所以就写了一个“金山杀手”,代码是通用的,稍稍进行一下修改就成“360杀手”啦,哈哈~~

代码未作详细测试,但应该没有太大的问题,这里只是提一个思路,如有问题,大家有兴趣的自行修改吧。


代码附上:

SetCompressor /SOLID lzma
SetCompress force
XPStyle on

OutFile "unkis.exe"
Name "金山杀手"
BrandingText "WwW.Flighty.CN"

;以下为检测运行文件方式,有一定局限性,不推荐。
Section "卸载金山卫士"
  FindProcDLL::FindProc "kxetray.exe"
    Pop $R0
    IntCmp $R0 1 0 no_run
    MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
  keep:
    ExecWait 'C:\Program Files\Kingsoft\KSafe\uninst.exe'
  none:
    Quit
    no_run:
SectionEnd

;以下为注册表检测方式,两种方式可以选其一,不过,推荐使用注册表检测方式。
Section "卸载金山卫士2"
ReadRegStr $R2 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\金山卫士" "UninstallString"
  StrCmp $R2 "" NO YES
    YES:
    MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
  keep:
    ExecWait $R2
  none:
    Quit
    NO:
SectionEnd

标签:卸载(16)运行(5)NSIS(49)