Shift85
Как сделать проверку через реестр установлена игра или нет и если установлена появлялось сообщение типа "Игра уже установлена" "удалить да нет"
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppExeName "MyProg.exe"
[Setup]
AppID=My Program
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
#define MyAppVersion "1.5"
#define MyAppExeName "MyProg.exe"
[Setup]
AppID=My Program
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
Код:
function UninstallMyApp(): Boolean;
var
Buff: String;
i: Integer;
begin
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then Result := not FileExists(RemoveQuotes(Buff));
if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?', mbError, MB_YESNO) = IDYES then
try
Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
finally
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then MsgBox('Удаление завершилось неудачей!', mbError, MB_OK);
end;
end;
function InitializeSetup(): Boolean;
begin
Result := UninstallMyApp();
end;[/SPOILER]