Автор | Сообщение |
|
| Администратор
|
Пост N: 3503
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.11.16 13:35. Заголовок: Работа с реестром
Понадобилось программно удалить все ключи определенного раздела реестра, не удаляя сам раздел. Ключ можно удалить вызовом WIN_REGDELETEKEY, а как получить содержимое раздела ? Я смотрю, оболочки для соответствующих вызовов winapi нет. Через файл *.reg можно сделать так: Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Resiliency\DisabledItems] но при этом удаляется и сам раздел. Есть еще какие-то варианты ?
|
|
|
Ответов - 2
[только новые]
|
|
|
| moderator
|
Пост N: 1048
Зарегистрирован: 11.02.10
|
|
Отправлено: 25.11.16 13:45. Заголовок: Pasha пишет: Есть е..
Pasha пишет: цитата: | Есть еще какие-то варианты ? |
| Для этого можно использовать перебор существующих ключей с помощью функции RegEnumKey() цитата: | HB_FUNC ( REGENUMKEY ) { char buffer[ 128 ]; hb_retnl( RegEnumKey( ( HKEY ) hb_parnl( 1 ), hb_parnl( 2 ), buffer, 128 ) ); hb_storc( buffer, 3 ); } |
| Пример использования: oReg := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Display" ) nId := 0 While RegEnumKey( oReg:nHandle, nId++, @cReg ) == 0 oKey := TReg32():New( HKEY_LOCAL_MACHINE, "System\CurrentControlSet\Services\Class\Display\" + cReg ) cName := oKey:Get( "DriverDesc" ) oKey:Close() ENDDO oReg:Close()
|
|
|
|
| Администратор
|
Пост N: 3504
Зарегистрирован: 23.05.05
|
|
Отправлено: 25.11.16 14:02. Заголовок: Спасибо, Григорий. О..
Спасибо, Григорий. Оказывается, в hmg средства работы с реестром полнее, чем в harbour hbwin
|
|
|
|