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

简介: 很多時候我們需要在安裝文件之前卸載原有的程序而不是覆盖安装,本文的code就是实现了这样的功能。 实现原理是:從注冊表'UninstallString'項中读取卸载信息,用Exec进行静默卸载。 下面code中APP_NAME为你的程序名,可以去注冊表中确认。

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

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

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

[plain] view plain copy
    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; 
目录
相关文章
|
7天前
inno setup打包软件学习
如何使用Inno Setup打包软件,包括打包结果的展示、示例打包脚本的提供、常见错误的解决方法,以及参考资料的链接。文中详细解释了解决“另一个程序正在使用此文件”和“桌面图标无法修改”等问题的方法,以及如何正确设置打包脚本中的文件路径和图标。
inno setup打包软件学习
|
Windows
“inno setup打包,win7下安装没有桌面快捷方式,xp下安装正常”
修改桌面的快捷键为选中就行了:Flags: checkablealone;在[Tasks]下面修改代码如下:Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIco...
1101 0
制作部署安装包:Inno Setup
原文:制作部署安装包:Inno Setup 前一篇尝试Office 2003 VSTO的开发、部署有提到用VS开发一个简单的VSTO程序。打包C/S程序,我首先想到的是VS里自带的Setup Project。
1328 0
一个比较完整的Inno Setup 安装脚本
原文:一个比较完整的Inno Setup 安装脚本 增加了对ini文件设置的功能,一个安装包常用的功能都具备了。 [Setup]; 注: AppId的值为单独标识该应用程序。; 不要为其他安装程序使用相同的AppId值。
1598 0
Inno setup定制安装界面
原文:Inno setup定制安装界面 Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我的界面。
2399 0
|
C语言
Inno setup中定制安装路径
原文:Inno setup中定制安装路径 我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法。 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function MyDestDir(SubDir:String):...
1825 0
INNO SETUP卸载程序中加入自定义窗体
原文: INNO SETUP卸载程序中加入自定义窗体 [Setup] AppName=My Program AppVerName=My Program v.
1037 0