![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не работает RegSaveKey! [D6, Win95/98, Win2k]
Ruzz © (2002-11-14 11:41:00)Надо сохранить в файл содержимое ветви реестра
HKEY_CURRENT_USER\Что-то...
Пишу:
var Res:integer;
Handle:HKEY;
Buffer:array[0..1024] of char;
begin
Res:=RegCreateKeyEx(HKEY_CURRENT_USER, PChar(Что-то..), 0, nil, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, nil, Handle, nil);
if Res=ERROR_SUCCESS then begin
Res:=RegSaveKey(Handle,PChar("file"),nil);
if Res<>ERROR_SUCCESS then begin
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, Res, 0, Buffer, SizeOf(Buffer), nil);
ShowMessage(Buffer);
end;
RegCloseKey(Handle);
end else begin
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, Res, 0, Buffer, SizeOf(Buffer), nil);
ShowMessage(Buffer);
end;
и получаю сообщение
"Клиент не обладает требуемыми правами".
Внук (2002-11-15 09:21:00) [1]Если под Win2k, то процессу еще необходима привилегия SE_BACKUP_NAME.
The calling process must have the SE_BACKUP_NAME privilege. For more information about privileges, see Privileges.
Ruzz (2002-11-15 05:05:00) [2]Попробовал
Res:=RegCreateKeyEx(HKEY_CURRENT_USER, "", 0, nil, REG_OPTION_NON_VOLATILE, KEY_READ, nil, Handle, nil);
результат тот же...
Более того, беру книгу
Р.Саймон "Microsoft Windows 2000 API"
и с её CD пробую программу chapter19\LoadKey.exe
результат тот же...
Внук (2002-11-14 18:31:00) [3]The RegSaveKey function saves only nonvolatilekeys. It does not save volatile keys. A key is made volatile or nonvolatile at its creation
...
The RegSaveKey function does not save volatile keys. This flag is ignored if the key already exists.
Игорь Шевченко (2002-11-14 12:00:00) [4]Вместо KEY_ALL_ACCESS поставь KEY_READ