Inno Setup - opcja deinstalacji przy uruchomieniu instalacji


(Pappyfamilia) #1

Witam wszystkich. Zastanawiam się czy jest możliwe zrobienie w Inno Setup czegoś takiego jak jest u konkurencyjnego InstallShield, żeby przy starcie Instalatora - Setup.exe (zanim jeszcze pojawi się wybór języka lub strona powitalna) sprawdzał czy jest już zainstalowana owa wersja tego programu i jeśli jest to nastąpiło by jego zamknięcie (Instalatora) i uruchomienie Deinstalatora ( w normalnej opcji - nie SILENT). Jedyne co udało mi się znaleźć to coś takiego:

procedure CurStepChanged(CurStep: TSetupStep);

var

ResultCode: Integer;

Uninstall: String;

begin

if (CurStep = ssInstall) then begin

if RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1', 'UninstallString', Uninstall) then begin

MsgBox('Old version will be removed. Press OK to continue.', mbInformation, MB_OK);

Exec(RemoveQuotes(Uninstall), ' /SILENT', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

end;

end;

end;

Nie działa to jednak dość dobrze ponieważ dzieje się to dopiero w momencie rozpoczęcia instalacji, a mnie chodzi o to, żeby to działało na samym początku tak jak wyżej napisałem. Czy jest takie coś możliwe? Jeśli tak to bym opoprosił o podanie kodu. Z góry dziękuję.