2017-02-09 2 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_MACHINE и HKEY_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

Смежные вопросы