Ветеран
Сообщения: 1803
Благодарности: 714
|
Профиль
|
Отправить PM
| Цитировать
У меня в 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
|