原文 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:强制结束软件进程相关推荐
- Delphi中强制结束一个进程
强制结束一个进程的 API 为 TerminateProcess BOOL TerminateProcess( HANDLE hProcess, // 进程句柄 UINT uExitCode // 退 ...
- Linux中强制结束一个进程的终极方法和其他常用命令
Linux中强制结束一个进程的终极方法和其他常用命令 1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c ...
- CMD专业 :taskkill :::强制结束各种进程---查询端口号及占用端口号等
Window 中杀死指定端口 cmd 命令行 taskkill 前言: 对于经常会遇到电脑卡死啊,进程结束不了啊,界面卡死之类的,什么谷歌的无响应啊之类的,有关比不了,特别烦的就可以用以下方法解决啦, ...
- linux 强制结束p进程的命令,Linux常用命令之性能命令
本文介绍Linux常用性能统计分析命令,监控进程或者系统性能.主要包括CPU(top.mpstat).内存(vmstat.free).I/O(iostat).网络性能(sar).系统日志信息(dems ...
- win10taskkill强行结束进程_批处理文件BAT找到进程PID并强制结束TaskKill进程
Taskkill 1 简介 taskkill 是用来终止进程的.具体的命令规则如下: TASKKILL [/S system [/U username [/P [ password ]]]] { [/ ...
- VC/MFC 强制结束当前进程
最近接手一个MFC老项目,Bug太多,主线程退出的时候,也不管子线程死活,直接退出,导致子线程又去访问那些被释放的资源,结果程序无法关闭,或者导致进程在后台驻留了. 这里提供一种简单粗暴的方法: // ...
- Linux中强制结束一个进程的终极方法
在 Linux Ubuntu 服务器上用 dnx 基于 Kestrel 成功运行一个 ASP.NET 5 站点后,怎么也无无法退出. 运行的命令如下: /data/git/dnx/artifacts/ ...
- linux kill强制结束进程参数,Linux结束进程之kill、killall、pkill命令
1. 前言 我们经常在Linux里使用kill命令来结束某后台进程.但kill命令实际上是向进程发送信号,并且有多种信号.终止运行一个程序只是其中一个信号而已.kill是根据进程号发送信号的,而另一个 ...
- 使用 PspTerminateThreadByPointer 强制结束进程
实现过程 我们知道,线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进 ...
最新文章
- Linux qgis 编译,QGIS简介与源代码编译
- 为何 NLP 领域难以出现“独角兽”?
- 如何搭建python框架_从零开始:写一个简单的Python框架
- 06--swift之闭包
- HTML5中figure标签使用实例
- React开发(138):ant design学习指南之anchor处理
- SpringMVC注解驱动开发
- JSON Web Token实际应用
- Cache之组相连映射
- MCGS触摸屏通过MODBUS通讯速度控制台达B2伺服参数,有触摸屏源程序和伺服设定参数,实际的项目应用的。
- AirDisk创建网盘
- 1055 集体照 (25 分)
- shal()函数绕过和session验证绕过
- php screw 密钥,php-screw php代码加密工具用法(整理)
- .net core发布到IIS上出现 HTTP 错误 500.19,错误代码:0x8007000d
- MCE公司:重磅!明星靶点TLR4助力攻克脑血管难题!
- 2006年最热门的职业
- 2021年英语六级翻译
- 对计算机的磁盘进行维护,电脑硬盘如何进行维护?
- 思岚科技亮相2017电子博览会 倍受瞩目
热门文章
- 解决vscode卡顿,CPU占用过高的问题
- css3 动画与display:none冲突的解决方案
- linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
- 在ASP.NET Web API中返回错误的最佳实践
- @class与#import
- win固定ip无效,自动配成169.254.xx.xx
- linux c++ utf8 gbk,Linux C++ gbk转为utf-8
- __name__的意义与作用
- Linux常用基本命令:三剑客命令之-awk内置函数用法
- 微信小程序 自定义组件(stepper)