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

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

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

目录
相关文章
|
7月前
setup facatory9.0打包详细教程(含静默安装和卸载)
setup facatory9.0打包详细教程(含静默安装和卸载)
322 0
|
7月前
|
Web App开发 iOS开发 MacOS
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
解决macOS 应用安装在下载目录时遇到的 vscode 掉登录和应用无法随机启动的问题
151 0
electron打包的exe程序,点击安装却执行了卸载的问题
在window平台下 electron打包的exe安装后,在没卸载的情况下,重新点击exe安装,会执行卸载,再点一次才是安装; 针对这个问题,我注释了打包里的一个配置,就好了,如下
407 0
|
关系型数据库 MySQL 数据库
新!详细!win10下MySQL数据库干净卸载安装与配置
新!详细!win10下MySQL数据库干净卸载安装与配置
201 0
新!详细!win10下MySQL数据库干净卸载安装与配置
|
IDE API 开发工具
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
355 0
Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
win10 下提示“请等待当前程序完成卸载或更改”解决方案
当我们打开控制面板选择程序和功能进行程序卸载的时候,一旦当你当前的程序卸载还未完成时,你又去卸载另一个程序的时候,就会出现如下的提示“请等待当前程序完成卸载或更改”
1245 0
win10 下提示“请等待当前程序完成卸载或更改”解决方案
|
Windows
“inno setup打包,win7下安装没有桌面快捷方式,xp下安装正常”
修改桌面的快捷键为选中就行了:Flags: checkablealone;在[Tasks]下面修改代码如下:Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIco...
1114 0