博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码
阅读量:5905 次
发布时间:2019-06-19

本文共 730 字,大约阅读时间需要 2 分钟。

原文

有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题,

因此将代码贴出来供大家批评指正,用Inno Setup打包时用得上。

  1. function InitializeSetup():boolean;
  2. var
  3.   MykeynotExist:boolean;
  4.   ResultCode: Integer;
  5.   uicmd: String;
  6. begin
  7.   MykeynotExist:= true;
  8.   if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{49D79F54-D485-4011-83FE-FFC938F3DB86}_is1', 'UninstallString', uicmd) then
  9.   begin
  10.   MyKeynotExist:= false;
  11.   Exec(RemoveQuotes(uicmd), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
  12.   end;
  13.   Result:= MykeynotExist
  14. end;
复制代码

原理是探测HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
(也即是反映在“添加/删除程序”中的卸载项目)中的卸载项目,若检测到则启动卸载确认对话框。
在实际应用的时候,各位需要将我代码中“{49D79F54-D485-4011-83FE-FFC938F3DB86}”,
修改成自己脚本中的AppId。

转载地址:http://zhdpx.baihongyu.com/

你可能感兴趣的文章
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException
查看>>
ECSHOP_修改后台登陆路径
查看>>
Eclipse 3.7如何安装egit
查看>>
Android之最简单的ImageView加边框方法
查看>>
Redis 基础入门
查看>>
GTK中设置滚动条到某一特定位置
查看>>
算法(第四版)课后练习 1.3.29
查看>>
android Draw Rect 坐标图示
查看>>
What is Serverless?
查看>>
CYQ.Data 轻量数据层之路 应用示例三 Aop切入留言系统--操作日志(二十七)
查看>>
Homebrew 的安装方法(官方的方法老是安装失败) 第三方
查看>>
java 服务程序cpu资源占用高的问题
查看>>
Java程序员到架构师的推荐阅读书籍
查看>>
Centos6下DRBD的安装配置
查看>>
高流量站点NGINX与PHP-fpm配置优化
查看>>
Matplotlib Tutorial
查看>>
php5.6升级到php7.1.10(Linux环境)
查看>>
软件评估--你的软件,更重要的是你
查看>>
SVN 操作
查看>>
像素级质量 快速切页面工具
查看>>