Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Сохранение и загрузка ключей реестра   Найти похожие ветки 

 
Sting   (2004-07-08 23:01) [0]

Доброг времени суток.
У меня такая проблема.
Есть функции для работы с реестром SaveKey, LoadKey.
Но они не работают должным образом. Насколько я понял, в ХР необходимо получить соответствующие привилегии для их использования. Функция SaveKey сохраняет ветвь реестра в файл, если была установлена привилегия SeBackupPrivilege.
Однако LoadKey не восстанавливает информацию из созданного файла. Для ее восстановления я использую привилегию SeRestorePrivilege. Система выдает такое сообщение: "потребовалось восстановление одного из файлов данных системного рееста с помощью журнала или дополнительной копии. Восстановление произошло успешно." И в реестре никаких изменений не происходит.
Кто-нибудь может помочь с этим?


 
Cobalt ©   (2004-07-09 01:56) [1]

Чё?!
Код давай!!!
:)


 
Sting   (2004-07-09 03:05) [2]

Установка привилегии:

function SetPrivilege(sPrivilegeName: string; bEnabled: boolean): boolean;
var
TPPrev,
TP: TTokenPrivileges;
Token: THandle;
dwRetLen: DWord;
begin
 Result := False;
 try
 OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
 TP.PrivilegeCount := 1;
 if (LookupPrivilegeValue(nil, PChar(sPrivilegeName),TP.Privileges[0].LUID)) then
 begin
   if (bEnabled) then
   TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
   else TP.Privileges[0].Attributes := 0;
   dwRetLen := 0;
   Result := AdjustTokenPrivileges(Token, False, TP, SizeOf(TPPrev),
   TPPrev, dwRetLen);
 end;
 finally
   CloseHandle(Token);
 end;
end;

Сохранаю так:

var
 x   : TRegistry;
 key : string;
begin
 SetPrivilege("SeBackupPrivilege", True);

 key:="Некоторый ключ";
 x:=tregistry.Create;
 x.RootKey:=HKEY_LOCAL_MACHINE;
 x.SaveKey(key,"c:\tmp1");
 x.Free;
end;

Удаляю ключ. Пытаюсь восстановить так:

var
 x   : TRegistry;
 key : string;
begin
 SetPrivilege("SeRestorePrivilege", True);

 key:="Некоторый ключ";
 x:=tregistry.Create;
 x.RootKey:=HKEY_LOCAL_MACHINE;
 x.LoadKey(key,"c:\tmp1");
 x.Free;
end;

И ничего не получается



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
1-1091612532
П7
2004-08-04 13:42
2004.08.22
Изменение TTreeNode


6-1083957540
AndersoNRules
2004-05-07 23:19
2004.08.22
Net Send


9-1083396186
Iks
2004-05-01 11:23
2004.08.22
F1 плз !!! Подкиньте, пожалуйста, мне исходник на DelphiX?


1-1092028242
Shadow[AN]
2004-08-09 09:10
2004.08.22
Динамическое создание компонентов


3-1091137474
Максим
2004-07-30 01:44
2004.08.22
Access - как измененить значение поля?