Bootstrap

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

很多時候我們需要在安裝文件之前卸載原有的程序而不是覆盖安装,本文的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; 
;