Чтение данных из реестра

Mashiroo

Как не странно нашел кучу информации как записывать в реестр, но как считывать адекватно не нашел.
HKEY hKey;
LPCSTR lpSubKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
DWORD dwResult;
dwResult = RegCreateKeyExA(HKEY_LOCAL_MACHINE, lpSubKey, NULL, "", NULL, KEY_READ, NULL, &hKey, NULL);
Вот код создания. Как находить значение по имени тоже есть информация - RegQueryValueEx();. А как мне получить список имен? И если можно, пример использования. Надо вывести все в форму. И куда лучше всего выводить? Я не нашел ничего лучше чем три ричтекстбокса... П.с. Visual studio 2015
2 ответа

Mashiroo

Mashiroo, список функций для работы с реестром есть на MSDN - Registry Functions. Проглядев список можно найти нужные тебе методы. В частности RegEnumValue который позволяет получить список имен внутри ключа.Еще советую посмотреть в сторону .NET классов для работы с реестром. Они находятся в пространстве имен Microsoft::Win32. Их легче использовать чем функции Windows API и нет необходимости в преобразовании C-строк в .NET-ие.
RegCreateKeyExA
Лучше вызывать вариант без суффикса. A (Ansi) все равно вызовет W (Unicode) вариант и код только потратит лишнее время на преобразование строк. Правильнее это сделать сразу на этапе компиляции.


Mashiroo

Сейчас попробую разобраться с пространством имен Microsoft::Win32. Выглядит привлекательнее хотя бы потому что сразу получаю данные в System::String^. Спасибо за подсказку.