Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не работает 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо