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

原文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
时间: 2024-10-27 21:20:06

NSIS:判断程序是否运行并进行卸载的相关文章

iphone5-怎么判断程序是否在iPhone5上运行?

问题描述 怎么判断程序是否在iPhone5上运行? 应用里有UIViewController 类的接口,我希望应用在iPhone5中运行的时候会知道,怎么样在代码中判断出现在是不是iPhone5? 解决方案 现在.m文件中: #define IS_IPHONE_5 ( [ [ UIScreen mainScreen ] bounds ].size.height == 568 ) 然后: if( IS_IPHONE_5 ){ // 在iphone 5中} else { // 在其他iphone中

C# WinForm判断程序是否以管理员身份运行

Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作.这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这样的功能呢?   我们

web setup 如何判断程序已安装?卸载时提示用户是否要备份虚拟目录下的access db?

问题描述 websetup如何判断程序已安装?卸载时提示用户是否要备份虚拟目录下的accessdb?vs.net2005c#+access+asp.net我的打包程序想实现:1.判断是否已安装,如果已安装,用户要覆盖原来程序,提示是否备份数据库.2.卸载时提示用户是否要备份数据库?请大家给点思路,代码谢谢 解决方案 解决方案二:up解决方案三:?解决方案四:mark解决方案五:引用3楼begonia_ref的回复: mark

【WinForm】使用NSIS发布程序

原文:[WinForm]使用NSIS发布程序 简介 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序.它提供了安装.卸载.系统设置.文件解压缩等功能 使用 以下是我在网上看到的一篇还是比较详细的说明,特别摘出来,改了一下排版,方便查看. 源地址在这  点击查看 ,还是非常感谢高山流水 的! 1. 用向导自动生成NSIS脚本文件. 打开VNISEdit. 单击向导后,在弹出窗口,点<下一步>,出现设置窗口1/8如

求VS制作安装项目经验:指定卸载时不删除某些文件、在卸载前判断如果不符合条件则取消卸载等

问题描述 用VS制作安装项目,要求可以指定卸载时不删除某些文件.在卸载前判断如果不符合条件则取消卸载(取消卸载的代码怎么写?例如要调用什么方法或发送什么消息)等,另外,还发现OnBeforeInstall比Install还要晚调用,怎么回事?请高手指点,万分感谢!具体的需求如下:1.卸载前判断程序是否正在运行,如果正在运行则提示用户"先退出程序,然后再重新执行卸载操作",跟着安装程序应该能取消本次安装操作.2.卸载后要保留安装位置处的用户数据文件,不要删除掉,在下次安装后可以使用这些数

基于.Net平台应用程序唯一运行实例C#代码实现

程序 概述本文是针对<基于.Net平台应用程序唯一运行实例实现>的补充,文章给出功能实现代码,其中SingleInstance类实现只允许一个实例运行,Program为测试主程序入口.在代码中标识说明文字.完整代码下载. 主要代码SingleInstance.cs文件, using System;using System.IO;using System.Diagnostics;using System.Threading;using System.Reflection;using System

Android中设置只是程序第一次运行才显示的界面

程序安装后第一次启动: 启动页-->功能介绍页-->系统主页 以后启动: 启动页-->系统 主页 所以在启动页中判断一下就可以了 可以弄一个文件保存一个状态,推荐用SharedPreferences . 1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是 第一次则执行系统主页. 判断系统是第一次运行的代码实现如下: 在Activity中添加代码: 使用SharedPreferences来记录程序的使用次数 一下是实现的代码: public v

Linux中用PHP判断程序运行状态的2个方法

  这篇文章主要介绍了Linux中用PHP判断程序运行状态的2个方法,需要的朋友可以参考下 有时候在服务器上面写一些脚本的时候,经常要放到crontab里面定时运行.时间长了就有一个问题,那就是程序重复运行消耗太多的资源,怎么处理呢?下面我写了两种方法: 第一种:用linux里面的正则匹配 代码如下: function ifrun($clsname,$bf = 0) { //下面进行检测,如有一个进程正在运行,则不运行 $str=shell_exec("/bin/ps ax > /home

C++ 学习之旅一——Windows程序内部运行原理

      学习C++与.net不同的是,一定要搞清楚Windows程序内部运行原理,因为他所涉及大多数是操作系统的调用,而.net毕竟是在.netFrameWork上唱戏.        那Windows应用程序,操作系统,计算机硬件之间的相互关系究竟什么了,下面的图就给予很好的解释.       向下箭头①是 应用程序运行判断处理的结果,输出到输出的设备.       向上箭头②是输入设备,输入到操作系统中.       向下箭头③代表API,我们要解释以下API是什么.API是应用程序接口