Запросите пароль при попытке удалить мое приложение Java в Windows - PullRequest
0 голосов
/ 26 сентября 2018

Я сделал установщик моего Java-приложения для Windows.После установки в Windows все работает отлично.Теперь я хочу добавить функцию, которая должна запрашивать пароль, когда я пытаюсь удалить приложение без пароля, его нельзя удалить.

Еще одна вещь, которую я хочузнаете, нужно ли мне сделать отдельный деинсталлятор или я могу добавить эти функции в сам мой инсталлятор?

Любая помощь будет признательна.

PS Здесь я 'Я нацелена на ОС Windows для установки приложений.

Короче говоря, я хочу, чтобы, если кто-то попытается удалить мое приложение, он запросит пароль, и если он введет правильный пароль, а затем онмогу удалить его.

Я не знаю, как добиться выше желаемого, нужно ли мне изменить мой установщик или мне нужно создать собственный деинсталлятор.

1 Ответ

0 голосов
/ 09 октября 2018

Наконец, после стольких усилий я нашел хороший источник, который объясняет мне все вопросы.

В паскале Inno Setup я могу изменить некоторый код для обеспечения защиты паролем, например:

[Setup]
AppName=UninsPassword
AppVerName=UninsPassword
DisableProgramGroupPage=true
DisableStartupPrompt=true
DefaultDirName={pf}\UninsPassword

[Code]
function AskPassword(): Boolean;
var
  Form: TSetupForm;
  OKButton, CancelButton: TButton;
  PwdEdit: TPasswordEdit;
begin

  Result := false;
  Form := CreateCustomForm();
  try
    Form.ClientWidth := ScaleX(256);
    Form.ClientHeight := ScaleY(100);
    Form.Caption := 'Uninstall Password';
    Form.BorderIcons := [biSystemMenu];
    Form.BorderStyle := bsDialog;
    Form.Center;

    OKButton := TButton.Create(Form);
    OKButton.Parent := Form;
    OKButton.Width := ScaleX(75);
    OKButton.Height := ScaleY(23);
    OKButton.Left := Form.ClientWidth - ScaleX(75 + 6 + 75 + 50);
    OKButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    OKButton.Caption := 'OK';
    OKButton.ModalResult := mrOk;
    OKButton.Default := true;

    CancelButton := TButton.Create(Form);
    CancelButton.Parent := Form;
    CancelButton.Width := ScaleX(75);
    CancelButton.Height := ScaleY(23);
    CancelButton.Left := Form.ClientWidth - ScaleX(75 + 50);
    CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
    CancelButton.Caption := 'Cancel';
    CancelButton.ModalResult := mrCancel;
    CancelButton.Cancel := True;

    PwdEdit := TPasswordEdit.Create(Form);
    PwdEdit.Parent := Form;
    PwdEdit.Width := ScaleX(210);
    PwdEdit.Height := ScaleY(23);
    PwdEdit.Left := ScaleX(23);
    PwdEdit.Top := ScaleY(23);

    Form.ActiveControl := PwdEdit;

    if Form.ShowModal() = mrOk then
    begin
      Result := PwdEdit.Text = 'removeme';
      if not Result then
            MsgBox('Password incorrect: Uninstallation prohibited.', mbInformation, MB_OK);
    end;
  finally
    Form.Free();
  end;
end;


function InitializeUninstall(): Boolean;
begin
  Result := AskPassword();
end;

Источник информации: этот пост

...