原文NSIS:强制结束软件进程

有时候,我们选择卸载软件后发现安装目录中的主文件依然存在,不是我们卸载代码写的不对,而是卸载的时候软件根本就没有关闭!

在卸载前加上下面这个宏可以在一定程度上免除上述的尴尬,不信,你就试试!

轻狂注: 本宏可用于删除程序前使用!判断用户的程序是否仍在运行,如果运行,就将其进程结束,再删除程序。

代码如下:

01 outfile "test.exe"    ;www.flighty.cn
02 var exestr            ;可以是多个进程名,用";"号断开
03 var len1
04 var len2
05 var leni
06 Var len
07 var sun
08 var len3
09 var len4
10 !macro ExeEnd  exestr
11    strlen $sun "${exestr}"
12    intop $len3 0 + 0
13    intop $len4 0 + 0
14    intop $len 0 + 0
15    intop $leni 0 + 0
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中的字符是不是";"如果是,表示这以经是一个进程名了!如果不是,刚跳过下面的宏,继续取!             
21    strcpy $len $len1 -1
22    FindProcDLL::FindProc "$len" ;查找进程是否存在!
23    StrCmp $R0 1 0 +2
24    KillProcDLL::KillProc "$len" ;杀掉进程,此处应注意,不是所有程序的进程都能杀掉,有些进程用这个方法无法结束!
25    intop $leni 0 + 0
26    strlen $len4 "$len1" 
27    intop $len3 $len3 + $len4
28    strcpy $len1 "" 
29    IntOp $sun $sun - 1     ;字符串长度减1
30    strcmp $sun 0 0 -13     ;此处判断字条串长度如果为0则到了尾端了!
31    ;杀掉最后一个进程文件!
32    FindProcDLL::FindProc "$len1" ;查找譔进程是否存在!
33    StrCmp $R0 1 0 +2
34    KillProcDLL::KillProc "$len1" ;杀掉进程,此处应注意,不是所有程序的进程都能杀掉,有些进程用这个方法无法结束!
35 !macroend
36 Section
37 !insertmacro ExeEnd"cmd.exe;2.exe;3.exe;4.exe;5.exe;6.exe;hh.exe;hfkjc.exe"  ;这是你要结束的进程
38 sectionend

NSIS:强制结束软件进程的更多相关文章

  1. windows xp/7命令提示符强制结束指定进程

    开始----“运行 ”输入cmd ,然后在命令提示符下输入tasklist,出现如下列表: Image Name                     PID Session Name        ...

  2. selenium 3.0 键盘事件 +强制结束chromedriver进程代码

    selenium自动化测试常常用到键盘操作,一下是键盘操作的详细操作,和部分代码.截图来自于虫师的自动化相关书籍. public static void main(String[] args) thr ...

  3. Linux中强制结束一个进程的终极方法

    在 Linux Ubuntu 服务器上用 dnx 基于 Kestrel 成功运行一个 ASP.NET 5 站点后,怎么也无无法退出. 运行的命令如下: /data/git/dnx/artifacts/ ...

  4. 使用ExitProcess()结束本进程、TerminateProcess 结束进程

    进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...

  5. 强制结束虚拟机 centos home 卷丢失导致无法挂载进入 emergency mode 紧急模式

    参考文章: https://blog.51cto.com/13059784/2054378 xfs文件修复参考1:https://codeday.me/bug/20181112/367781.html ...

  6. ubutu强制结束进程 kill -9 ProcessID

    强制终止进程 kill -9 2128 表示强制结束进程号 2128 对应的进程.

  7. C++使用taskkill 命令强制结束进程

    一:查看 taskkill 命令和参数的方法 window系统下,快捷键win + R 打开运行 ,输入cmd回车,在 cmd 里面输入: taskkill /?  二:语法: taskkill [/ ...

  8. Win64 驱动内核编程-26.强制结束进程

    强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...

  9. windows 如何查看端口占用进程ID 进程名称 强制结束进程

    1.查看指定端口的占用情况C:\>netstat -aon|findstr "9050" 协议    本地地址                     外部地址        ...

随机推荐

  1. WPF对于xml的简单操作(下下)插入节点并排序

    正如T所说,下下,这个方法不堪入目, ̄□ ̄|| 贴上再说 //先搞个struct声明 private struct datastruct { public string x; public strin ...

  2. Codeforces 32E Hide-and-Seek 乞讨2关于镜面反射点 计算几何

    主题链接:点击打开链接 必须指出的是,反射镜和2个人共线是不是障碍,但根据该壁其他情况 #include<cstdio> #include<iostream> #include ...

  3. uva 11427 - Expect the Expected(概率)

    题目链接:uva 11427 - Expect the Expected 题目大意:你每天晚上都会玩纸牌,每天固定最多玩n盘,每盘胜利的概率为p,你是一个固执的人,每天一定要保证胜局的比例大于p才会结 ...

  4. Codeforces Round #257 (Div. 2) 题解

    Problem A A. Jzzhu and Children time limit per test 1 second memory limit per test 256 megabytes inp ...

  5. Python多线程的threading Event

    Python threading模块提供Event对象用于线程间通信.它提供了一组.拆除.等待用于线程间通信的其他方法. event它是沟通中最简单的一个过程之中,一个线程产生一个信号,号.Pytho ...

  6. 【程序猿助手】Emacs,最强的编辑器,之间的不

     wx_fmt=png" alt="" style="max-width:100%; height:auto!important"> 内容简单 ...

  7. 给Ubuntu安装KDE桌面 [转]

    自ubuntu5.10发布以来,我非常难得的让她在我的硬盘上顽强生存了近3个月,仔细想想就连当年我第一个接触的红旗Linux也不过坚持了一个月,呵呵,又写了一段废话── 所 谓的“重回Kununtu” ...

  8. Java NIO内存映射---上G大文件处理(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了java中内存映射的原理及过程,与传统IO进行了对比,最后,用实例说明了结果 ...

  9. CopyOnWriteArrayList源代码阅读器

    java.util.concurrent在相应的并发集合的包中定义的通用集合类,为了有效地处理并发场景.间CopyOnWriteArrayList它是合适ArrayList.顾名思义CopyOnWri ...

  10. Eclipse——热键&amp;Help

    版权声明:本文博主原创文章.博客,未经同意不得转载.