Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать какие последовательные порты есть у системы(все Win)?  (Прочитано 9221 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
stix
Гость
« : 08-12-2005 05:40 » 

Всем прювет!

Мне необходимо узнать какие имена последовательных портов(com1, com2,com5, ...) установлены в данный момент в системе? А какие они, виртуальные или нет, неважно.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Online Online
Сообщений: 13


« Ответ #1 : 08-12-2005 06:17 » 

самое простое - просканировать

Код:
HANDLE h;
CString txt;
int err;
for(int i=1;i<256;i++)
{
txt.Format("COM%d",i);
h = CreateFile(txt,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if(h==INVALID_HANDLE_VALUE)
{
err=GetLastError();
if(err==ERROR_FILE_NOT_FOUND)
{
//нет порта
}
else
{
if(err==ERROR_ACCESS_DENIED)
{
//порт уже открыт (то есть - есть)
}
else
{
//нет порта
}
}
}
else
{
//есть порт
CloseHandle(h);
}
}

« Последнее редактирование: 08-12-2005 06:29 от Алексей1153 » Записан

IRP
Постоялец

ua
Offline Offline

« Ответ #2 : 08-12-2005 07:38 » 

Отлично, а прикинь у меня в системе будет виртуальный порт COM45364 - и это реально!!! что тогда? Улыбаюсь
В общем для энумерации портов нада использовать SetupDi... функции.
пример можно вытащить из DDK сдесь: \WINDDK\3790\src\setup\devcon\
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Online Online
Сообщений: 13


« Ответ #3 : 08-12-2005 08:22 » 

IRP , Ага

я же говорю - в самом простом случае
Записан

GlukSoft
Главный специалист

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 08-12-2005 10:12 » 

stix, пошарь по форуму, эта тема уже поднималась, там была даже готовая функция, которая выдавала все порты.
Записан

Fatal error C1: Brain expected
GlukSoft
Главный специалист

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 08-12-2005 10:19 » 

Лови https://forum.shelek.ru/index.php/topic,3733.0.html
Записан

Fatal error C1: Brain expected
stix
Гость
« Ответ #6 : 09-12-2005 05:29 » 

Всем спасибо все понятно!
А я то думал что есть какая-нибудь нормальная API функция у самой винды :nono: или еще что-нибудь менее циклическое Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Online Online
Сообщений: 13


« Ответ #7 : 09-12-2005 05:37 » new

кстати о птичках, я тут интереса ради написал в консоли
copy con \\.\com1

и чё вы думаете? Улыбаюсь
 - работает Улыбаюсь) отсылает по ентеру (вместе с ним)
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines