Не работает восстановление из файла. Делаю под админом, ошибки не выдает, но восстановление не работает.
Код, который сохранит ветку реестра в файл: ============
| Код | var hToken: THandle; tkp: Token_Privileges; ReturnLength: Cardinal; hKeyToSave: HKEY; dw: cardinal; begin if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken) then begin LookupPrivilegeValue(nil,'SeBackupPrivilege', tkp.Privileges[0].Luid); tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, false, tkp, sizeof(TOKEN_PRIVILEGES), nil, ReturnLength); end;
RegCreateKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE',//ключ, который бэкапим 0, nil, REG_OPTION_BACKUP_RESTORE, KEY_QUERY_VALUE, nil, hKeyToSave, @dw);
RegSaveKey(hKeyToSave,'имя_файла_в_который_бэкапим.txt', nil); RegCloseKey(hKeyToSave); end; ========================= код, совершающий восстановление из файла : var hToken: THandle; tkp: Token_Privileges; ReturnLength: Cardinal; hKeyToSave: HKEY; dw: cardinal; begin if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken) then begin LookupPrivilegeValue(nil,'SeRestorePrivilege', tkp.Privileges[0].Luid); tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, false, tkp, sizeof(TOKEN_PRIVILEGES), nil, ReturnLength); end;
RegCreateKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE',//ключ, который бэкапим 0, nil, REG_OPTION_BACKUP_RESTORE, KEY_QUERY_VALUE, nil, hKeyToSave, @dw);
RegLoadKey(hKeyToSave,'имя_файла_в_который_бэкапим.txt', nil); RegCloseKey(hKeyToSave); end;
|
M Rrader | Пользуйтесь подсветкой кода! |
|