Название: [решено но по иному] WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 10:00 Доброго дня!
Тут возник у меня "затык" в части определения списка последовательных устройств в системе. т.е мне нужно получить имена всех последовательных портов имеющихся в системе. 1. Я пробовал применить WinAPI ф-ю : QueryDosDevice Код: #include <QtCore> Цитировать D:\projects\QSerialDevice_24062009_1700\examples\devices>release\default.exe т.е нет в имени упоминания слова COMxxx ... т.е. результат - мне не годится этот способ т.к. мне нужен список в виде:"retval : 17" \Device\Serial0 COM1 COM2 .... COMN + чтобы и "виртуальные" устройства можно было бы сюда добавить (например всякого рода конвертеры USB<->RS232) 2. вычитал потом про сервис WMI в венде и нашел простой пример на VBS: Код: On Error Resume Next 3. Вычитал о том что можно из реестра взять инфрмацию.. но как это сделать в QT4 не имею понятия! Люди, поможите чем могёте! :( Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: Rcus от Июнь 24, 2009, 10:16 /* sigh */ Если брать чистый Win32API, то всю информацию по нему можно найти в msdn, там есть примеры и на c++. Если же хочется каких-нибудь оберток, то тут не знаю чем помочь... Вроде для Solid делали backend на WMI, но не знаю как там дела обстоят.
Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 10:31 Цитировать Если брать чистый Win32API, то всю информацию по нему можно найти в msdn, там есть примеры и на c++. да, есть, но там подключаются заголовочные файлы, которых нет в MinGW ! :)набрел тут на сайт : http://forum.ixbt.com/topic.cgi?id=26:34140 и там : Цитировать В Win2000/XP можно прочитать ветку реестра 'HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM' думаю проще всего лазить по этому пути в реестре и смотреть что там есть.. но .. опять же не знаю с помошью чего в реестре лазить и как читать! QSettings вроде там не ищет.. он ищет только тут (из ассистента): Цитировать On Windows, NativeFormat settings are stored in the following registry paths: HKEY_CURRENT_USER\Software\MySoft\Star Runner HKEY_CURRENT_USER\Software\MySoft HKEY_LOCAL_MACHINE\Software\MySoft\Star Runner HKEY_LOCAL_MACHINE\Software\MySoft :( упс.. забираю слова обратно.. :) нашел и это: Цитировать QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft", QSettings::NativeFormat); Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: lit-uriy от Июнь 24, 2009, 10:36 kuzulis, это (http://www.forum.crossplatform.ru/index.php?showtopic=1479&view=findpost&p=9756) подойдёт?
Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 10:45 вот набросал примерчик:
Код: #include <QtCore> но выводит: Цитировать D:\projects\QSerialDevice_24062009_1700\examples\devices>release\default.exe "" и притом при компиляции говорит что: Цитировать main.cpp:11:32: warning: unknown escape sequence '\D' main.cpp:11:32: warning: unknown escape sequence '\S' Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 10:49 2 lit-uriy,
спасибо, но я не знаю, будет ли эта ф-я работать для win64 и т.п. . но попробую Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: lit-uriy от Июнь 24, 2009, 10:52 >>и притом при компиляции говорит что
дак ты двойные слэши сделай этож С\С++ Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 10:56 спс.. теперь варнингов не выводит..
и я добавил такую строчку : Код: .. Цитировать D:\projects\QSerialDevice_24062009_1700\examples\devices>release\default.exe "" ("/Device/Serial0") т.е. как бы правильно подставить ключ ("/Device/Serial0") ????? Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: lit-uriy от Июнь 24, 2009, 11:00 вообще затея с автоматическим поиском имён устройств плохая. Работать будет разве что на виндовозе.
Так например адаптеры USB<->RS-232 в *nix'ах под самыми разными именами создаются, да и штатные порты сильно отличаются по именам. Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: lit-uriy от Июнь 24, 2009, 11:02 >>будет ли эта ф-я работать для win64 и т.п.
>>т.е. как бы правильно подставить ключ ("/Device/Serial0") В виндовозе наблюдается тенденция к возвращению на Юникс путь. Даже в вин2к такие имена используются в нутри системы. Я не пробовал но может прямо так и можно подставить в API функцию openFile Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 11:27 Цитировать вообще затея с автоматическим поиском имён устройств плохая. Работать будет разве что на виндовозе. Так например адаптеры USB<->RS-232 в *nix'ах под самыми разными именами создаются, да и штатные порты сильно отличаются по именам. ну мне и нужно под виндус только ! :) под *.nix я уже написал метод (там просто идет перебор имен устройств из /dev и нужные заносятся в QStringList) Цитировать В виндовозе наблюдается тенденция к возвращению на Юникс путь. Даже в вин2к такие имена используются в нутри системы. ну а для API ф-ции CreateFile необходимо указывать COM1 COM2 и т.п (вроде) - поэтому нужен список именно с такими аббревиатурами Цитировать Я не пробовал но может прямо так и можно подставить в API функцию openFile хез.. мож и можно :) ... думаю самое простое - читать реестр... вот только бы ключ правильно составить ! :( Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 11:33 Цитировать Цитировать не.. не работаетЯ не пробовал но может прямо так и можно подставить в API функцию openFile хез.. мож и можно Улыбающийся .... что-то и QSettings не хочет подхватывать ключ.. Я даже экспортировал этот ключ в файл *.reg из реестра: Цитировать Windows Registry Editor Version 5.00 и подставлял в метод value это : "\\Device\\Serial0" - но не работает что то[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM] "\\Device\\Serial0"="COM1" ------- Ёлки, этот метод тож можно вычеткнуть.. т.к. тут http://www.qtcentre.org/forum/f-qt-programming-2/t-how-can-i-read-deviceserial0-value-with-qsettings-in-windows-registry--16089.html/?highlight=QSettings написано что это невозможно Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: lit-uriy от Июнь 24, 2009, 12:07 мне эксперементировать влом, но коль уж ты озадачился, попробуй ещё такой вариант:
"\"\\Device\\Serial0\"" Название: Re: WMI и minGW и QT4 получение конфигурации устройств. Как? Отправлено: kuzulis от Июнь 24, 2009, 13:59 ВСЕ! Я победил это!
код: Код: /* ставте тег РЕШЕНО! :) |