Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
p_r_a_g_m_a
109 / 61 / 18
Регистрация: 08.03.2012
Сообщений: 211
Завершенные тесты: 1
#1

Получение данных из реестра - C++

14.03.2012, 17:37. Просмотров 774. Ответов 2
Метки нет (Все метки)

Вот кусок кода для проверки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
HKEY fKey;
DWORD pcbData = 255;
char* pvData = new char[pcbData];
 
if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".xml", 0, KEY_QUERY_VALUE, &fKey) == ERROR_SUCCESS)                  //Открываем ключ HKEY_CLASSES_ROOT/.xml
{
    if (RegQueryValueEx(fKey, "", NULL, NULL, (LPBYTE)pvData, &pcbData) == ERROR_SUCCESS)                //Читаем его значение (по умолчанию) - "xmlfile"
    {
        RegCloseKey(fKey);                                  //Закрываем ключ
        if(RegOpenKeyEx(HKEY_CLASSES_ROOT, pvData, 0, KEY_QUERY_VALUE, &fKey) == ERROR_SUCCESS)          //Открываем ключ HKEY_CLASSES_ROOT/xmlfile
        {
            if (RegQueryValueEx(fKey, "", NULL, NULL, (LPBYTE)pvData, &pcbData) == ERROR_SUCCESS) //Читаем его значение (по умолчанию) - "XML Document"
                AfxMessageBox(pvData);
            else
                AfxMessageBox("Не могу прочитать HKEY_CLASSES_ROOT\\xmlfile.@");                  //В итоге получаем сообщение об ошибке 
        }
        else
            AfxMessageBox("Не могу открыть HKEY_CLASSES_ROOT\\xmlfile");
    }
    else
        AfxMessageBox("Не могу прочитать HKEY_CLASSES_ROOT\\.xml.@");
}
else
    AfxMessageBox("Не могу открыть HKEY_CLASSES_ROOT\\.xml");
delete[] pvData;
Не хочет читать данные. То что они есть в реестре сомнений нет. Единственное что мне не понятно, так это то, что ошибка возникает в том случае, если у ключа кроме значение по умолчанию есть еще и другие значения.

Добавлено через 1 час 37 минут
С ошибкой уже разобрался.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 17:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение данных из реестра (C++):

Считывание данных с реестра - C++
День добрый! Я уже, наверное, достал всех сегодня... Но гугл не понимает, что мне надо. Я имею такой код: ...

Ввод данных, добавление данных, получение информации из файла по заданным критериям выборки - C++
Все привет!!!Обращаюсь к вам за помощью...никак не получается решить задачку... Суть такая....Написать на языке программирования С++,...

Получение данных о пк - C++
какие функций существуют или как это сделать? например узнать какой процессор и какое на нем сейчас напряжение?)

Получение данных из интернета - C++
У меня есть на сайте файлик "version.txt", как мне считать с него всё, и записать в переменную string ( или прочие, LPCSTR и другие) ? И...

Получение данных с сайта - C++
Добрый день! Я только начинающий программист. Хочу слепить программку для себя. Суть программы в следующем: Есть сайт который...

Получение данных с устройства - C++
Здравствуйте. Нужно получить данные с устройства (спектрофотометр ПЭ-5300ВИ). Устройство подсоединено по usb. В документации написано,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17818 / 6028 / 388
Регистрация: 30.03.2009
Сообщений: 16,557
Записей в блоге: 26
15.03.2012, 09:59 #2
Цитата Сообщение от p_r_a_g_m_a Посмотреть сообщение
С ошибкой уже разобрался
Для истории отпишись, в чём проблема была. Эта информация может оказаться полезной другим
0
p_r_a_g_m_a
109 / 61 / 18
Регистрация: 08.03.2012
Сообщений: 211
Завершенные тесты: 1
15.03.2012, 14:58  [ТС] #3
Цитата Сообщение от Evg Посмотреть сообщение
Для истории отпишись, в чём проблема была. Эта информация может оказаться полезной другим
Все оказалось предельно просто. Функция RegQueryValueEx меняет значение переменной pcbData, поэтому перед следующим ее вызовом нужно заново установить ее значение - размер буфера.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2012, 14:58
Привет! Вот еще темы с ответами:

Получение данных из web - C++
Добрый день. Кто знает, подскажите пожалуйста, возможно ли скачать на локальный диск текст html страницы из web по заданному адресу. И...

Получение данных из файла - C++
Задача№6. Постройте программу, которая отслеживает пожертвования в Общество Защиты Влиятельных Лиц. Она должна запрашивать у пользователя...

Получение данных из памяти - C++
В c++ мои знания не так велики, поэтому возникла проблема получения данных из процесса. В чем, собственно, суть: есть процесс, в котором...

Получение данных из консольного окна - C++
Есть некоторая программа, которая в реал тайм выволит данные в консоль. После завершения работы оставляет лог файл, но нужен опять же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru