![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с регистром!!! [D7, WinXP]
Gefest80 © (2005-10-07 00:02:00)Удалено модератором
Примечание: CПАМ
Brother (2005-10-07 07:28:00) [1]а регистор тут причем?
GanibalLector (2005-10-07 02:30:00) [2]>D7, WinXP
Для данной ОС необходимо получить соответсвуюшие привелегии.И только потом выполнять ф-цию SaveKey. Более того,файл в который будет сохранена информация из реестра НЕ ДОЛЖЕН СУЩЕСТВОВАТЬ!
Пример :
var
hToken: THandle;
dwLength: DWORD;
tpNewState, tpPrevState: TOKEN_PRIVILEGES;
const RegName='D:\Reg.old';
begin
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES+TOKEN_QUERY, hToken) then
begin
if LookupPrivilegeValue(nil, 'SeBackupPrivilege',tpNewState.Privileges[0].Luid) then
begin
tpNewState.PrivilegeCount := 1;
tpNewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, tpNewState,SizeOf(TOKEN_PRIVILEGES), tpPrevState, dwLength);
{Test is True.}
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
if FileExists(RegName) then
DeleteFile(RegName);
SaveKey('Software\Borland', RegName);
finally
Free;
end;
tpNewState.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, True, tpNewState,SizeOf(TOKEN_PRIVILEGES), tpPrevState, dwLength);
end;
end;
end;
Германн (2005-10-07 01:11:00) [3]А что. Эта функция обязана записывать какой-то файлик?