Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Цитата saurn:
так что наверное будет достаточно и Exec с ewWaitUntilTerminated)) »
так точно.


habib2302, вот пример:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
AppId=wwwwwwwwwwwwww

[code  ]                           


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;


UPD: Улучшил пример!

Последний раз редактировалось Johny777, 30-06-2013 в 14:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:24, 30-06-2013 | #715