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

Чтение реестра

Pasha: Имеется установленный 7-Zip. Надо прочитать параметр из реестра: HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip\Path Для харбора вызываю: win_regRead( 'HKLM\SOFTWARE\7-Zip\Path' ) Для xHarbour: GetRegistry(, 'SOFTWARE\7-Zip', 'Path' ) Для win32 все нормально Для win64 с установленным 64-битным 7-Zip эти функции возвращают nil, Что интересно, если программы создают в реестре ветку в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node То функции хаобора читают эти ветки, если не упоминать Wow6432Node А как можно прочесть параметры для 64-битных программ ?

Ответов - 2

santy: для просмотра обоих регистров нужно использовать флаги доступа KEY_WOW64_64KEY и KEY_WOW64_32KEY при открытии регистра: RegOpenKeyEx(hKeyParent, KeyName, 0, KEY_READ | KEY_WOW64_64KEY, &hKey); #if defined(_WIN64) #define CROSS_ACCESS KEY_WOW64_32KEY #else #define CROSS_ACCESS KEY_WOW64_64KEY ... RegOpenKeyEx(hKeyParent, KeyName, 0, KEY_READ | CROSS_ACCESS, &hKey);

Pasha: Спасибо, это то, что нужно. Поскольку в функциях харбора работы с реестром на prg-уровне сейчас нет возможности задать флаги доступа, я добавил дополнительный параметр. Сегодня скину на SVN.



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