(Inno setup打包)检测系统是否已安装程序,若已安装则弹出卸载提示的代码

简介: 原文 http://bbs.itiankong.com/thread-30983-1-5.html 有6天没研究pascal代码了,昨天晚上突然来了灵感,终于解决了苦思冥想好几天没能解决的问题, 因此将代码贴出来供大家批评指正,用Inno Setup打包时用得上。

原文 http://bbs.itiankong.com/thread-30983-1-5.html

有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。

目录
相关文章
|
1天前
setup facatory9.0打包详细教程(含静默安装和卸载)
setup facatory9.0打包详细教程(含静默安装和卸载)
12 0
|
7月前
|
SQL 数据采集 关系型数据库
sqlyog下载和卸载的最新详细过程,超多图快速安装或者卸载
sqlyog下载和卸载的最新详细过程,超多图快速安装或者卸载
148 0
|
3月前
|
Web App开发 iOS开发 MacOS
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
30 0
electron打包的exe程序,点击安装却执行了卸载的问题
在window平台下 electron打包的exe安装后,在没卸载的情况下,重新点击exe安装,会执行卸载,再点一次才是安装; 针对这个问题,我注释了打包里的一个配置,就好了,如下
251 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案
当我们打开控制面板选择程序和功能进行程序卸载的时候,一旦当你当前的程序卸载还未完成时,你又去卸载另一个程序的时候,就会出现如下的提示“请等待当前程序完成卸载或更改”
895 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案
|
Windows
“inno setup打包,win7下安装没有桌面快捷方式,xp下安装正常”
修改桌面的快捷键为选中就行了:Flags: checkablealone;在[Tasks]下面修改代码如下:Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIco...
994 0
INNO SETUP卸载程序中加入自定义窗体
原文: INNO SETUP卸载程序中加入自定义窗体 [Setup] AppName=My Program AppVerName=My Program v.
947 0