Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по реестру, RegQueryValueEx отказывается работать 
V
    Опции темы
alpetyan
Дата 8.10.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.8.2006

Репутация: нет
Всего: нет



Здравствуйте. 
Вопрос такой -- RegQueryValueEx отказывается работать.

Код

#include <windows.h>
//#include <commctrl.h>
#include "dlg.h"
BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
  {
  DialogBox(hInstance,"DlgBox", NULL, DlgProc);
  return 0;
  }

BOOL CALLBACK DlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    HKEY hKey;
    char  StrBuff[1024];
    DWORD SizeStrBuff;
    DWORD RegType;
    switch(Msg)
        {
        case WM_INITDIALOG: 
        return TRUE;

        case WM_COMMAND:
        switch (LOWORD (wParam))
        {                  
        case IDC_FIND  :
               if(ERROR_SUCCESS!=RegOpenKeyEx(HKEY_CURRENT_USER,TEXT("Software\\Microsoft\\InternetExplorer\\TypedURLs"),0,KEY_ALL_ACCESS|KEY_READ,&hKey))
               { 
        MessageBox(NULL,"CannotRegOpenKeyEx","ERROR",MB_OK);
                   return -1;  
               }
               
               if(ERROR_SUCCESS!=RegQueryValueEx(hKey,"TypedURLs",0,&RegType,(LPBYTE)StrBuff,&SizeStrBuff))
               {
                   MessageBox(NULL,"Cannot RegQueryValueEx","ERROR",MB_OK);
                   return -1;
               }
               RegCloseKey(hKey);
                   
               return 0;
                   
               case IDCANCEL :
               EndDialog (hDlg, 0) ;
               return TRUE;
        }
        break;
        }

return FALSE;
} 


Искал везде(и на форуме),срабатывает сообщение "Cannot RegQueryValueEx".
Что не так? 

Это сообщение отредактировал(а) alpetyan - 8.10.2006, 22:43
PM MAIL   Вверх
Pulse69
Дата 8.10.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 28.4.2006
Где: Хабаровск

Репутация: 8
Всего: 10



Код

//...
SizeStrBuff = sizeof ( StrBuff );
               if(ERROR_SUCCESS!=RegQueryValueEx(hKey,"TypedURLs",0,&RegType,(LPBYTE)StrBuff,&SizeStrBuff))
               {
                   MessageBox(NULL,"Cannot RegQueryValueEx","ERROR",MB_OK);
                   return -1;
               }

//...


Так работает?
--------------------
Ctrl+Alt+Reset 
PM MAIL   Вверх
alpetyan
Дата 8.10.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.8.2006

Репутация: нет
Всего: нет



Pulse69. Отвечаю.
Не а,  да и пробовал по всякому.
PM MAIL   Вверх
CaptainFlint
Дата 8.10.2006, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Искатель сокровищ
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 26.2.2003
Где: Москва

Репутация: 1
Всего: 23



alpetyan
Во-первых, такого ключа действительно не существует. "Internet Explorer" с пробелом должен быть указан.
Во-вторых, даже если бы был пробел, ты пытаешься получить несуществующий параметр, а именно - параметр с именем TypedURLs, располагающийся в разделе с тем же именем TypedURLs. Такого в реестре нету, в разделе TypedURLs располагаются ключи с именами urlN, где N - номер.


--------------------
Почему же, ё-моё, ты нигде не пишешь "ё"?
--------------------
Для тех, кто не знает: CaptainFlint - это бывший Константин. ;) 
PM MAIL WWW ICQ   Вверх
alpetyan
Дата 8.10.2006, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.8.2006

Репутация: нет
Всего: нет



 CaptainFlint.

Спасибо.
Только с Internet Explorer я случайно затер на форуме, а с функцией до конца не разобрался. Теперь все работает.
Закрываю тему.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.