serg_aka_lain
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Setup] AppName=Test AppVerName=Test DefaultDirName={pf}\Test DefaultGroupName=Test UninstallDisplayName=Test [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Code] const MB_ICONINFORMATION = $40; MB_ICONEXCLAMATION = $30; MB_ICONQUESTION = $20; MB_ICONSTOP = $10; MB_ICONNONE = $0; function MessageBox(hWnd: Integer; lpText, lpCaption: string; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall'; procedure InitializeWizard; var ResultCode: Integer; ResultStr: string; begin If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test_is1', 'DisplayName', ResultStr) then begin If ResultStr = 'Test' then begin ResultStr := RemoveQuotes(ResultStr); if MessageBox(MainForm.Handle, 'Программа установки обнаружила уже установленное приложение.' #13#13 'Вы желаете предварительно удалить его?', 'Удаление Test', MB_ICONINFORMATION or mb_YesNo) = IDNo then begin Abort; end else If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Test_is1', 'UninstallString', ResultStr) then begin If ResultStr <> '' then begin ResultStr := RemoveQuotes(ResultStr); if not Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then MessageBox(MainForm.Handle, 'Ошибка удаления. ' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, приложение было перемещено, удалено или переименовано.', 'Удаление Test', MB_ICONEXCLAMATION or MB_OK); end; end; end; end; end; |