Russian Qt Forum
Май 05, 2024, 08:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перечисление COM-портов в Windows  (Прочитано 8447 раз)
Silver_swift
Гость
« : Февраль 26, 2012, 13:16 »

Доброго времени суток всем!

Мне нужно получить список всех устройств подключенных к ПК через COM порты. Пробую сделать это через реестр, точнее через HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/SERIALCOMM. regedit показывает мне два COM-порта COM1 и COM2 соответственно.
Использую QSettings:

Код:
 QSettings *Settings = new QSettings("HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM",QSettings::NativeFormat); 
list=Settings->value("HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM","null").toStringList();
Пробовал по-разному и всегда получаю null.
В связи с чем вопросы:
 - что вообще хранится в виндовском реестре?
 - как это считать с помощью QSettings?
 - если нельзя то какие есть способы в том числе и платформозависмые?
Подскажите куда копать Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Февраль 26, 2012, 13:34 »

http://gitorious.org/qserialdevice/qserialdevice/trees/2.0

см. класс SerialPortInfo
« Последнее редактирование: Февраль 26, 2012, 13:36 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
mutineer
Гость
« Ответ #2 : Февраль 26, 2012, 14:15 »

казалось бы - причем тут GUI...
Записан
Silver_swift
Гость
« Ответ #3 : Февраль 26, 2012, 17:31 »

Цитировать
см. класс SerialPortInfo
Смотрю содержимое serialportinfo_win.cpp темный лес вызовов на winAPI и подозреваю, что мне все это не нужно. Мне бы просто считать ветку реестра. Но для этого хорошо бы знать что из себя представляют записи реестра. Не хотелось лопатить MSDN но кажется туда дорога.

Цитировать
казалось бы - причем тут GUI...
QSettings лежит в модуле QtCore, который входит в QtGui и поскольку раздела по QtCore на этом форуме я не обнаружил единственным логичным местом для создания этой темы я посчитал этот раздел... Ага.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Февраль 26, 2012, 17:57 »

К GUI это действительно неимеет никакого отношения. Есть раздел "Общие вопросы".
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #5 : Февраль 26, 2012, 18:39 »

Цитировать
Смотрю содержимое serialportinfo_win.cpp темный лес вызовов на winAPI и подозреваю, что мне все это не нужно.
Я тебе привел готовый к испоьлзованию класс, все уже сделано давно до тебя - бери и пользуйся. И не нужен MSDN и т.п.

Ппц..
Записан

ArchLinux x86_64 / Win10 64 bit
Silver_swift
Гость
« Ответ #6 : Февраль 26, 2012, 19:28 »

Я знаю, что такое SerialPortInfo и QExtSerialPortEnumerator. Но мне нужен другой способ. Потому я и решил задать вопрос здесь.

Помогаю другу с заданием в инсте и суть задания в том, чтобы написать именно свою функцию. Помимо копания msdn идеи есть?


Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #7 : Февраль 26, 2012, 19:45 »

Помимо копания msdn идеи есть?
Смотреть в SerialPortInfo какие поля вас интересуют и в serialportinfo_win.cpp смотреть как эти поля заполняются.
И да, если у вас 7-ка учитывайте, что при включённом UAC'е и приложении без манифеста вы можете не совсем из реестра читать данные и соответственно не совсем актуальные.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.