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

时间:2021-09-05 21:20:23

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

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

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

    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;