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

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

Аватара для opel431

Ветеран


Contributor


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

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


Цитата Painkiller:
всё перепробовал. »
У меня в XE удаляет.
Код
Код: Выделить весь код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    lbl1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses JclRegistry, JclSecurity, JclSysInfo;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  if (CheckWin32Version(6, 0)) then
  begin
    if not(IsPrivilegeEnabled('SeBackupPrivilege')) then
      EnableProcessPrivilege(True, 'SeBackupPrivilege');
    if not(IsPrivilegeEnabled('SeRestorePrivilege')) then
      EnableProcessPrivilege(True, 'SeRestorePrivilege');
    if not(IsPrivilegeEnabled('SeDebugPrivilege')) then
      EnableProcessPrivilege(True, 'SeDebugPrivilege');
    if not(IsPrivilegeEnabled('SeManageVolumePrivilege')) then
      EnableProcessPrivilege(True, 'SeManageVolumePrivilege');
  end;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if (CheckWin32Version(6, 0)) then
  begin
    if IsPrivilegeEnabled('SeBackupPrivilege') then
      EnableProcessPrivilege(False, 'SeBackupPrivilege');
    if IsPrivilegeEnabled('SeRestorePrivilege') then
      EnableProcessPrivilege(False, 'SeRestorePrivilege');
    if IsPrivilegeEnabled('SeDebugPrivilege') then
      EnableProcessPrivilege(False, 'SeDebugPrivilege');
    if IsPrivilegeEnabled('SeManageVolumePrivilege') then
      EnableProcessPrivilege(False, 'SeManageVolumePrivilege');
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
const
  KeyName = 'SOFTWARE\Microsoft\WIMMount';
var
  RootKey: HKEY;
  LastAccess: TJclRegWOW64Access;
begin
  LastAccess := RegGetWOW64AccessMode;
  RootKey := HKEY_LOCAL_MACHINE;
  try
    if not IsWindows64 then
      RegSetWOW64AccessMode(raNative);

    if not(RegKeyExists(RootKey, KeyName)) then
    begin
      lbl1.Caption := 'Ключ - ' + KeyName + ' не найден!';
    end
    else
    begin
      if not(RegDeleteKeyTree(RootKey, KeyName)) then
      begin
        lbl1.Caption := 'Ключ - ' + KeyName + ' не удален!';
      end
      else
        lbl1.Caption := 'Ключ - ' + KeyName + ' удален!';
    end;
  finally
    RegSetWOW64AccessMode(LastAccess);
  end;
end;

end.

-------
Хвала тому, кто встав среди камней, уча другого, сам будет умней.


Последний раз редактировалось opel431, 27-02-2016 в 02:25.


Отправлено: 01:53, 27-02-2016 | #20