inno setup制作安装软件防止重复安装源代码
来源:互联网 发布:servlet使用json 编辑:程序博客网 时间:2024/05/21 14:07
INNO:检测程序是否已经安装,是则弹出卸载提示
实现原理:
探测注册表HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall(即“添加/删除程序”)中的卸载项目,若检测到则启动卸载确认对话框。
在实际应用的时候,各位需要将上面代码中“{86D79F54-E485-4011-83FE-FFC558F3DB86}”修改成自己脚本中的AppId。
基本:检测程序是否已经安装
用Inno Setup打包时,我们有时想要这样的功能:安装程序自动检测是否已经安装过,是则弹出卸载提示,否则正常安装。以下是代码片段:
试例一:
[code]
function InitializeSetup():boolean;var MykeynotExist:boolean; ResultCode: Integer; uicmd: String;begin MykeynotExist:= true; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{86D79F54-E485-4011-83FE-FFC558F3DB86}_is1', 'UninstallString', uicmd) then begin MyKeynotExist:= false; Exec(RemoveQuotes(uicmd), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); end; Result:= MykeynotExistend;
扩展:两次检测系统是否已经安装目标程序
先检测系统是否已安装官方的程序,若已安装则弹出一个消息框,当点击“确定”后自动启动官方程序卸载功能。若检测不到官方的程序,则再检测是否已经已经安装了本程序,若已经安装,则直接启动卸载程序,若检测不到则程序开始安装。这样做的目的是防止在未卸载官方的程序的情况安装本程序,防止软件冲突。
试例二:
[code]
function InitializeSetup():boolean;var MykeynotExist:boolean; ResultCode: Integer; uicmd: String;begin MykeynotExist:= true; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{B7F653CF-1BE5-4F40-BA4A-E3BBC6869116}', 'UninstallString', uicmd) then begin MyKeynotExist:= false; MsgBox('安装程序检测到您的系统中已经安装了官方的 {#AppName} '#10#10'你最好先卸载此 {#AppName} 再安装本 {#AppName}',mbInformation,MB_OK) Exec(ExpandConstant('{pf}\InstallShield Installation Information\{{B7F653CF-1BE5-4F40-BA4A-E3BBC6869116}\Setup.exe'), '', '', SW_Show, ewNoWait, ResultCode); end; Result:= MykeynotExist if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{49D79F54-D485-4011-83FE-FFC938F3DB86}_is1', 'UninstallString', uicmd) then begin MyKeynotExist:= false; Exec(RemoveQuotes(uicmd), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); end; Result:= MykeynotExistend;
0 0
- inno setup制作安装软件防止重复安装源代码
- Inno Setup制作安装包
- INNO setup 制作安装包
- Inno setup 制作安装包
- Inno Setup制作实例:Inno Setup安装服务的代码
- 使用inno setup制作安装包
- delphi Inno Setup 制作安装程序
- inno setup 安装包制作工具
- 利用Inno Setup制作补丁安装程序
- Inno Setup制作安装包的几个问题
- 利用Inno Setup制作DevExpress安装包
- 使用Inno Setup制作安装程序
- Inno Setup 5制作安装程序
- 用inno setup制作安装程序
- inno setup制作安装包的经验
- 免费安装制作程序 Inno Setup
- inno setup制作部署安装包
- Inno Setup 5 安装包制作工具
- 使用RadioGroup+ViewPager+Fragment实现带滑动的页卡效果TabHost时遇到的问题
- jetty各个版本对应的jdk版本
- Ubuntu配置和修改IP地址
- 剑指offer-30 最小的K个数
- Hdoj 1433 Simply Syntax 【string】
- inno setup制作安装软件防止重复安装源代码
- 课堂作业
- 黑马程序员——Foundation框架:结构体及字符串之NSString
- Linux 信号signal处理机制
- 最优规则式 XDU1024
- web_reg_find函数
- Android控件之自动匹配输入内容AutoCompleteTextView
- cocos2dx 3.0 无法解析的外部符号 __imp__curl_easy_setopt,
- 安卓开发小练手之手机卫士开发(1)——Splash界面