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

简介: 原文 NSIS:判断程序是否运行并进行卸载 今天在评论里看到网友说要一个这样的功能,就简单写了一个,本来想做360杀手来着,但遗憾的是我从来不用360的东西,所在电脑上也没有360相关的软件进行测试,所以就写了一个“金山杀手”,代码是通用的,稍稍进行一下修改就成“360杀手”啦,哈哈~~ 代码未作详细测试,但应该没有太大的问题,这里只是提一个思路,如有问题,大家有兴趣的自行修改吧。

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

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

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


代码附上:

01 SetCompressor /SOLID lzma
02 SetCompress force
03 XPStyle on
04  
05 OutFile "unkis.exe"
06 Name "金山杀手"
07 BrandingText "WwW.Flighty.CN"
08  
09 ;以下为检测运行文件方式,有一定局限性,不推荐。
10 Section "卸载金山卫士"
11   FindProcDLL::FindProc "kxetray.exe"
12     Pop $R0
13     IntCmp $R0 1 0 no_run
14     MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
15   keep:
16     ExecWait 'C:\Program Files\Kingsoft\KSafe\uninst.exe'
17   none:
18     Quit
19     no_run:
20 SectionEnd
21  
22 ;以下为注册表检测方式,两种方式可以选其一,不过,推荐使用注册表检测方式。
23 Section "卸载金山卫士2"
24 ReadRegStr $R2 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\金山卫士" "UninstallString"
25   StrCmp $R2 "" NO YES
26     YES:
27     MessageBox MB_ICONQuESTION|MB_YESNO "安装程序检测到 金山卫士 正在运行,您必须将其卸载才能进行下一步安装,是否现在进行卸载?" IDYES keep IDNO none
28   keep:
29     ExecWait $R2
30   none:
31     Quit
32     NO:
33 SectionEnd
目录
相关文章
|
5月前
|
Unix Linux Shell
Linux执行shell脚本提示文件找不到问题解决办法
Linux执行shell脚本提示文件找不到问题解决办法
346 0
electron打包的exe程序,点击安装却执行了卸载的问题
在window平台下 electron打包的exe安装后,在没卸载的情况下,重新点击exe安装,会执行卸载,再点一次才是安装; 针对这个问题,我注释了打包里的一个配置,就好了,如下
251 0
|
11月前
|
Shell Linux Python
解决window移植到linux shell执行Python脚本提示找不到模块问题:
调试python工程时代码正常执行,但远程执行时,导入模块时提示找不到模块,即使模块就在当前工程目录下也不行
230 0
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
关于 Qt在win上“启动程序失败,路径或者权限错误"无法运行的16位程序 的解决方法
|
IDE 开发工具
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
win10 下提示“请等待当前程序完成卸载或更改”解决方案
当我们打开控制面板选择程序和功能进行程序卸载的时候,一旦当你当前的程序卸载还未完成时,你又去卸载另一个程序的时候,就会出现如下的提示“请等待当前程序完成卸载或更改”
898 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案
|
网络协议 Shell Linux
Frida使用文档(一)安装、启动、运行、关闭
Frida使用文档(一)安装、启动、运行、关闭
|
Windows
windows卸载程序提示“请等待当前程序完成卸载或更改“问题解决方法,windows卸载卡进程问题解决方法
windows卸载程序提示“请等待当前程序完成卸载或更改“问题解决方法,windows卸载卡进程问题解决方法
287 0
windows卸载程序提示“请等待当前程序完成卸载或更改“问题解决方法,windows卸载卡进程问题解决方法