Форум » [x]Harbour » Работа с реестром » Ответить

Работа с реестром

Pasha: Понадобилось программно удалить все ключи определенного раздела реестра, не удаляя сам раздел. Ключ можно удалить вызовом WIN_REGDELETEKEY, а как получить содержимое раздела ? Я смотрю, оболочки для соответствующих вызовов winapi нет. Через файл *.reg можно сделать так: Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Resiliency\DisabledItems] но при этом удаляется и сам раздел. Есть еще какие-то варианты ?

Ответов - 2

gfilatov2002: Pasha пишет: Есть еще какие-то варианты ? Для этого можно использовать перебор существующих ключей с помощью функции RegEnumKey() [pre2]HB_FUNC ( REGENUMKEY ) { char buffer[ 128 ]; hb_retnl( RegEnumKey( ( HKEY ) hb_parnl( 1 ), hb_parnl( 2 ), buffer, 128 ) ); hb_storc( buffer, 3 ); } [/pre2] Пример использования: [pre2] 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() [/pre2]

Pasha: Спасибо, Григорий. Оказывается, в hmg средства работы с реестром полнее, чем в harbour hbwin



полная версия страницы