Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

SHVtYW4=


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

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


Цитата Mat_y:
но и по AppId установщик эту программу перестает находить »
Ну если Inno, в добавок минусом выступает то что стороннего производства, то и подстроиться под него.
Если удаление, то примерно в таком духе

читать дальше »
Код: Выделить весь код
#define AppName "My Program"
#define UnExe "{uninstallexe}"

[Setup]
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AppId=TheBestAppIdEverMade

[Code]
var
  DeleteB: TNewButton;
  InstPath, UninsPath: string;
  ResultCode: Integer;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:= False;
end;

procedure UninstallButton(Sender: TObject);
begin
  Exec(UninsPath, '', '' , SW_SHOW, ewNoWait, ResultCode);
  SendMessage(WizardForm.CancelButton.Handle, $00F5, 0, 0);
end;


procedure InitializeWizard;
begin
  InstPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|}'));
  UninsPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,UninstallString|}'));
    begin
      DeleteB := TNewButton.Create(WizardForm);
      DeleteB.Name := 'Del_Button';
      DeleteB.Parent := WizardForm;
      DeleteB.Left := ScaleX(163);
      DeleteB.Top := ScaleY(327);
      DeleteB.Width := ScaleX(75);
      DeleteB.Height := ScaleY(23);
      DeleteB.Caption := 'Удалить';
      DeleteB.OnClick := @UninstallButton;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1')
  then
    else
      begin
        DeleteB.Visible := false;
      end;
end;

Отправлено: 21:47, 12-10-2013 | #1245