2017-02-09 374 views
2

我已經安裝了我的程序。但是如果我嘗試再次安裝它,它會執行並且程序被替換。Inno Setup - 如何防止安裝應用程序時的安裝?

我看到這個問題Inno Setup - How to display notifying message while installing if application is already installed on the machine?

我可以創建一個特定的註冊表項,這樣我就可以檢查並阻止新的安裝?在這個問題中有一些相關的信息:Inno setup - skip installation if other program is not installed

回答

3

您不需要創建任何註冊表項。安裝程序已經爲卸載程序創建了一個註冊表項。你可以檢查一下。這是相同的關鍵,​​你提到的問題的答案使用。但是你不需要檢查版本。只要檢查存在。你也應該同時檢查HKEY_LOCAL_MACHINEHKEY_CURRENT_USER

#define AppId "myapp" 

[Setup] 
AppId={#AppId} 

[Code] 

function InitializeSetup(): Boolean; 
begin 
    Result := True; 
    if RegKeyExists(HKEY_LOCAL_MACHINE, 
     'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') or 
    RegKeyExists(HKEY_CURRENT_USER, 
     'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppId}_is1') then 
    begin 
    MsgBox('The application is installed already.', mbInformation, MB_OK); 
    Result := False; 
    end; 
end; 

The application is installed already

相關問題