Inno Setup 安装前卸载原程序(转)

很多時候我們需要在安裝文件之前卸載原有的程序而不是覆盖安装,本文的code就是实现了这样的功能。

实现原理是:從注冊表'UninstallString'項中读取卸载信息,用Exec进行静默卸载。

下面code中APP_NAME为你的程序名,可以去注冊表中确认。

[plain] view plaincopy

    1. function InitializeSetup(): boolean;  
    2. var  
    3. ResultStr: String;  
    4. ResultCode: Integer;  
    5. begin  
    6. if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\APP_NAME_is1', 'UninstallString', ResultStr) then  
    7. begin  
    8. ResultStr := RemoveQuotes(ResultStr);  
    9. Exec(ResultStr, '/silent', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);  
    10. end;  
    11. result := true;  
    12. end; 
时间: 2024-09-25 00:03:40

Inno Setup 安装前卸载原程序(转)的相关文章

一个比较完整的Inno Setup 安装脚本

原文:一个比较完整的Inno Setup 安装脚本 增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [Setup]; 注: AppId的值为单独标识该应用程序.; 不要为其他安装程序使用相同的AppId值.; (生成新的GUID,点击 工具|在IDE中生成GUID.)AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675};程序名AppName=ISsample;版本号AppVerName=ISsample 1.0.0.0;发布者名AppPubli

一个比较完整的Inno Setup 安装脚本(转)

一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了. [plain] view plaincopy [Setup]   ; 注: AppId的值为单独标识该应用程序.   ; 不要为其他安装程序使用相同的AppId值.   ; (生成新的GUID,点击 工具|在IDE中生成GUID.)   AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675}   ;程序名   AppName=ISsample   ;版本

Android监听应用程序安装和卸载实现程序

代码如下  package com.rongfzh.yc; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class BootReceiver extends BroadcastReceiver{           @Override      public void onReceive(Context context

Inno Setup 安装inf文件的一个例子

原文 http://zwkufo.blog.163.com/blog/static/2588251201063033524889/ ; INF安装例子;  [Setup]; 注意: AppId 的值是唯一识别这个程序的标志.; 不要在其他程序中使用相同的 AppId 值.; (在编译器中点击菜单"工具 -> 产生 GUID"可以产生一个新的 GUID)AppId={{DC1559D2-A4CC-471F-8FDF-45F4278AFAEA}AppName=我的程序AppVerNa

inno setup介绍(转)

使 用 笔 记 1.Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件.关键功能: 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,XP,Me,NT 4.0 (不需要服务包). 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表.同时

Inno Setup使用上的几个问题 (转)

Inno Setup使用上的几个问题: [问题一:Inno Setup 执行REG文件代码?][Run]Filename: "{win}\regedit.exe";Parameters:"/s {tmp}\reg.reg" // 静默参数/S [问题二:安装时,如果已经有同名文件存在,就不更新该文件?][Files]Source: "test.tmp"; DestDir: "{app}"; Flags: onlyifdoesn

inno setup 怎么可以不生成卸载程序

问题描述 inno setup 怎么可以不生成卸载程序 inno setup 怎么可以不生成卸载程序或者怎样在程序安装完之后删除某个文件求大神解答 解决方案 [Setup]Uninstallable=no添加这个就可以不生成卸载程序 解决方案二: 流氓软件?不让人卸载? 解决方案三: 不是 只需要一个卸载程序就行 其他安装到这个目录下的文件还会多生成一个卸载程序 只是让其他的不生成卸载软件

在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤

原文 http://www.cnblogs.com/2356/archive/2009/10/27/1590565.html 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤 ISSkin是Code jock 公司出品的Inno Setup 皮肤插件,用于为Inno制作的安装程序提供皮肤功能. 自Delphi发布2009之后,Inno Setup 开始出现支持Unicode编码的版本,即5.3.x系列,并且官方同时提供Ansi和Unicode版本. 如果了解Delphi

INNO SETUP卸载程序中加入自定义窗体

原文:INNO SETUP卸载程序中加入自定义窗体 [Setup] AppName=My Program AppVerName=My Program v.1.2 DefaultDirName={pf}/My Program [Files] Source: Files/*; DestDir: {app} [Code] const bidDelAll = 1; bidSkipAll = 2; var Form: TSetupForm; CheckListBox: TNewCheckListBox;