NSIS:强制结束软件进程
系统
2965 0
原文
NSIS:强制结束软件进程
有时候,我们选择卸载软件后发现安装目录中的主文件依然存在,不是我们卸载代码写的不对,而是卸载的时候软件根本就没有关闭!
在卸载前加上下面这个宏可以在一定程度上免除上述的尴尬,不信,你就试试!
轻狂注: 本宏可用于删除程序前使用!判断用户的程序是否仍在运行,如果运行,就将其进程结束,再删除程序。
代码如下:
01
|
outfile
"test.exe"
;www.flighty.cn
|
02
|
var exestr ;可以是多个进程名,用
";"
号断开
|
11
|
strlen $sun
"${exestr}"
|
16
|
strcmp $sun 0 +12 0 ;是否到了字符串的尾端!
|
17
|
IntOp $leni $leni + 1 ;截取字符的长度增加!
|
18
|
StrCpy $len1
"${exestr}"
$leni $len3 ;截取字符,并保存与len1中
|
19
|
StrCpy $len2
"$len1"
""
-1 ;取出Len1最后一个字符放入Len2中
|
20
|
Strcmp $len2
";"
0 +9 ;判断Len2中的字符是不是
";"
如果是,表示这以经是一个进程名了!如果不是,刚跳过下面的宏,继续取!
|
22
|
FindProcDLL::FindProc
"$len"
;查找进程是否存在!
|
24
|
KillProcDLL::KillProc
"$len"
;杀掉进程,此处应注意,不是所有程序的进程都能杀掉,有些进程用这个方法无法结束!
|
27
|
intop $len3 $len3 + $len4
|
29
|
IntOp $sun $sun - 1 ;字符串长度减1
|
30
|
strcmp $sun 0 0 -13 ;此处判断字条串长度如果为0则到了尾端了!
|
32
|
FindProcDLL::FindProc
"$len1"
;查找譔进程是否存在!
|
34
|
KillProcDLL::KillProc
"$len1"
;杀掉进程,此处应注意,不是所有程序的进程都能杀掉,有些进程用这个方法无法结束!
|
37
|
!insertmacro ExeEnd
"cmd.exe;2.exe;3.exe;4.exe;5.exe;6.exe;hh.exe;hfkjc.exe"
;这是你要结束的进程
|
|
NSIS:强制结束软件进程
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元