原文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" ;这是你要结束的进程 |
|
- windows xp/7命令提示符强制结束指定进程
开始----“运行 ”输入cmd ,然后在命令提示符下输入tasklist,出现如下列表: Image Name PID Session Name ...
- selenium 3.0 键盘事件 +强制结束chromedriver进程代码
selenium自动化测试常常用到键盘操作,一下是键盘操作的详细操作,和部分代码.截图来自于虫师的自动化相关书籍. public static void main(String[] args) thr ...
- Linux中强制结束一个进程的终极方法
在 Linux Ubuntu 服务器上用 dnx 基于 Kestrel 成功运行一个 ASP.NET 5 站点后,怎么也无无法退出. 运行的命令如下: /data/git/dnx/artifacts/ ...
- 使用ExitProcess()结束本进程、TerminateProcess 结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...
- 强制结束虚拟机 centos home 卷丢失导致无法挂载进入 emergency mode 紧急模式
参考文章: https://blog.51cto.com/13059784/2054378 xfs文件修复参考1:https://codeday.me/bug/20181112/367781.html ...
- ubutu强制结束进程 kill -9 ProcessID
强制终止进程 kill -9 2128 表示强制结束进程号 2128 对应的进程.
- C++使用taskkill 命令强制结束进程
一:查看 taskkill 命令和参数的方法 window系统下,快捷键win + R 打开运行 ,输入cmd回车,在 cmd 里面输入: taskkill /? 二:语法: taskkill [/ ...
- Win64 驱动内核编程-26.强制结束进程
强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...
- windows 如何查看端口占用进程ID 进程名称 强制结束进程
1.查看指定端口的占用情况C:\>netstat -aon|findstr "9050" 协议 本地地址 外部地址 ...
随机推荐
- 安装sunvirtualbox
按照网友提供的方法安装sunvirtualbox,老提示:依赖关系不满足: libpython2.6 (>= 2.6) 后来用终端运行 sudo apt-get install virtualb ...
- 【原创】leetCodeOj --- Binary Tree Right Side View 解题报告
二连水 题目地址: https://leetcode.com/problems/binary-tree-right-side-view/ 题目内容: Given a binary tree, imag ...
- 我的CSDN之路
经营CSDN博客刚满一年,能够说CSDN给我们带来了非常大的帮助,这一年里CSDN见证了我们的成长.以下两篇博客就是我这一年在CSDN的缩影. 这篇是我一年前写的,那时候刚申请CSDN不久:http: ...
- POJ 2914 Minimum Cut 最小割图论
Description Given an undirected graph, in which two vertices can be connected by multiple edges, wha ...
- SharePoint使用BCS开发你第一个应用程序(一)
SharePoint使用BCS开发你第一个应用程序(一) 本系列教你使用BCS(Business Connectivity Service)创建OBA(Office business ...
- WPF 引用DLL纯图像资源包类库中的图片
原文:WPF 引用DLL纯图像资源包类库中的图片 1.建立WPF应用程序 过程略. 2.创建类库项目(图片资源包) 创建图片资源类库项目MyImages,删除 ...
- Mono for Android开发调研笔记
安装完Mono for Android(简称:MonoDroid)之后,可以用MonoDevelop或Visual Studio来开发Mono for Android应用程序:目前只能在模拟器上调试和 ...
- Android UI设计规则
Android UI技巧 1.1 不该做什么 l 不要照搬你在其他平台的UI设计,应该让用户使用感觉是在真正使用一个Android软件,在你的LOGO显示和平台总体观感之间做好平衡 l 不要过度使 ...
- Uva 10131 Is Bigger Smarter? (LIS,打印路径)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=1072">链接:UVa 10131 题意: ...
- pdf转换为word小工具,挺好
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFwZW5nMDExMg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...