Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить строковое представление HKEY, стандартными средствами 
:(
    Опции темы
np9mi7
  Дата 25.7.2005, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

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



Добрый день.

Недавно начал работать с rs232, и для этого стал использовать компонент:

Код

+------------------------------------------+
| ComPort Library version 2.64             |
| for Delphi 3, 4, 5, 6, 7                 |
| and C++ Builder 3, 4, 5, 6               |
|                                          |
| by Dejan Crnila 1998-2002                |
| maintained by Lars Dybdahl 2003          |
| C++ Builder support by Paul Doland       |
+------------------------------------------+


Но вот незадача, при получении настроек rs232 порта библиотечной функции необходимо передать полное значение ключа ( вместе с HKEY, в строковом представлении).

Как? Пришла в голову мысль (первая, тупая, работающая на 100%) написать мега switch, не получиться, поскольку:

Код

typedef void* HKEY;


Если кастовать тоже никак.

Писать мега else if - некрасиво!!!

Хочеться спросить: как получить строковое представление HKEY стандартными средствами (API? или может что есть в VCL).

Заранее благодарен за помощь.

ps: тут ещё подвох в том, что количество значений принимаемых HKEY может измениться, и если писать самому, то придеться за этим следить, а если стандартное то не придеться, просто пересабрать и все;


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
chaos
Дата 26.7.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



посмотри на это чудо RegQueryInfoKey может поможет
Добавлено @ 12:18
или поройся сдесь winreg.h
а вообще чето-то я не допонимаю вопроса smile
поясни: что есть что должно получиться

Это сообщение отредактировал(а) chaos - 26.7.2005, 12:24
PM WWW   Вверх
chaos
Дата 26.7.2005, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



а хотя о чем я вообще
Цитата

#define HKEY_CLASSES_ROOT          (( HKEY ) 0x80000000 )
#define HKEY_CURRENT_USER          (( HKEY ) 0x80000001 )
#define HKEY_LOCAL_MACHINE          (( HKEY ) 0x80000002 )
#define HKEY_USERS                  (( HKEY ) 0x80000003 )
#define HKEY_PERFORMANCE_DATA      (( HKEY ) 0x80000004 )
#if(WINVER >= 0x0400)
#define HKEY_CURRENT_CONFIG        (( HKEY ) 0x80000005 )
#define HKEY_DYN_DATA              (( HKEY ) 0x80000006 )

вот твои HKEY'и. и че те сложно написать максимум 7 ифов?
PM WWW   Вверх
np9mi7
Дата 26.7.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

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



не сложно, просто хотелось стандартной функцией, это то я уже написал:
Код

    //-----------------------------------------------------------------------
    if ( hdlRootKey == HKEY_CLASSES_ROOT)
    {
     //-------------------------------------------------------------------
        return TEXT("HKEY_CLASSES_ROOT");
    } 
    else if ( hdlRootKey == HKEY_CURRENT_CONFIG)
    {
     //-------------------------------------------------------------------
        return TEXT("HKEY_CURRENT_CONFIG");
    }
    else if ( hdlRootKey == HKEY_CURRENT_USER)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_CURRENT_USER");
    }
    else if ( hdlRootKey == HKEY_DYN_DATA)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_DYN_DATA");
    }
    else if ( hdlRootKey == HKEY_LOCAL_MACHINE)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_LOCAL_MACHINE");
    }
    else if ( hdlRootKey == HKEY_PERFORMANCE_DATA)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_PERFORMANCE_DATA");
    }
    else if ( hdlRootKey == HKEY_PERFORMANCE_NLSTEXT)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_PERFORMANCE_NLSTEXT");
    }
    else if ( hdlRootKey == HKEY_PERFORMANCE_TEXT)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_PERFORMANCE_TEXT");
    }
    else if ( hdlRootKey == HKEY_USERS)
    {
     //-------------------------------------------------------------------
     return TEXT("HKEY_USERS");
    }
    //-----------------------------------------------------------------------
    _ASSERT ( false);
    //-----------------------------------------------------------------------



--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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