Как узнать кто занял com порт windows

Обновлено: 07.07.2024

Сегодня компьютерные вирусы буквально наводнили мир и свободно перемещаются по Интернету, поэтому когда речь заходит о портах, то большинство пользователей чаще вспоминают о логических портах, которые в таких сетевых технологиях, как TCP/IP или UDP, используются для организации каналов связи, и забывают о физических портах для подключения внешних устройств. Впрочем, даже для подключения принтеров, мышей и клавиатур все чаще применяются высокоскоростные USB-порты и все реже — старые добрые COM и LPT (последовательный и параллельный порты). Однако последние имеются даже в самых современных компьютерах, и, наверное, пришло время использовать их для каких-то других целей (скажем, для управления тем или иным специализированным устройством).

Для того чтобы отследить обмен между компьютером и каким-то устройством, как раз и необходимы программы — анализаторы портов.

Конечно, в продаже имеются и специальные приборы (пробники) для контроля аналоговых и цифровых сигналов (в том числе и анализаторы USB, LPT и COM), однако, как любое профессиональное оборудование, стоят они довольно дорого.

Контроль последовательного порта компьютера (COM)


Com Port Visual Control имеет встроенный приемопередатчик для стандартной настройки режимов порта: битов данных, стоповых битов, скорости, четности, контроля ошибок, возможности приема и передачи текстовых данных и команд модема, а также индикатор контроля активного состояния команд UART (поддерживается 17 основных команд). Кроме того, осуществляется контроль портов компьютера с одновременным отображением группы регистров и битов состояния и ведется протокол изменения данных в базовом регистре.

Эти программы представляют собой мощные коммуникационные анализаторы реального времени, которые позволяют исследовать обмен по COM-порту и понять, как работает то или иное устройство, даже если на него отсутствует документация. Программа имеет удобный и интуитивно понятный интерфейс, облегчающий слежение за обменом, управление портами ввода-вывода и снабжение подробной онлайновой документацией.

Программы ComLite32 и ComLab32 работают с портами RS-232, RS-422, RS-485 и RTX485 (с последним портом — только на чтение) и позволяют вести протокол обмена с этими портами в обоих направлениях. Системные требования программы ComLite32 минимальны: всего 8 Мбайт оперативной памяти, 6 Мбайт дискового пространства и хотя бы одно устройство, работающее с последовательным портом (включая PCMCIA-модемы ноутбуков).

Advanced Serial Data Logger также может передавать запросы и команды через последовательный порт для непосредственного управления устройствами по ASCII (по умолчанию) или MODBUS-протоколу. Таким образом, программа Advanced Serial Data Logger становится сервером ввода-вывода. Что касается управления и настройки, то они очень просты и интуитивно понятны. Дополнительное программирование для сбора данных не требуется.

Кроме того, Advanced Serial Data Logger может работать как сервис под Windows NT/2000/XP/2003, который будет стартовать при загрузке системы и записывать данные с последовательного порта в файл на диске или в другие указанные места еще до входа пользователя в систему (и продолжит функционировать после завершения сеанса пользователя).

Программа имеет возможность запуска нескольких копий на одном компьютере, так что несколько портов могут протоколироваться одновременно.

Что касается программы Advanced Serial Port Monitor, то она может пригодиться как начинающим пользователям, так и профессионалам.

Advanced Serial Port Monitor может служить как для наблюдения за передачей данных другими приложениями, так и для отправки и приема данных через последовательный порт компьютера (RS-232). Программа предоставляет различные способы сохранения данных в файл или визуализации их на экране монитора.

Таким образом, вы можете работать с любыми устройствами, работающими по интерфейсу RS-232 либо RS-485 (RS-422) при наличии соответствующего преобразователя. Вы будете наблюдать за обменом данными между любым Windows-приложением и внешними устройствами, подсоединенными к последовательному порту. Это может быть или измерительное устройство, или домашняя радиостанция, или же другой компьютер, соединенный через z-модемный или нуль-модемный кабель.

С помощью дополнительных модулей можно не только принимать данные или передавать команды, но и эмулировать работу каких-то конкретных устройств, а в режиме наблюдателя (перехватчика) — просто следить за обменом данными между внешним устройством, подсоединенным к последовательному порту, и каким-то приложением Windows. И наконец, Advanced Serial Port Monitor имеет свой встроенный язык написания сценариев, с помощью которого можно запускать программу с предустановленными опциями и действиями, а также выполнять команды из модулей.

Контроль параллельного порта компьютера (LPT)

У Валерия Ковтуна есть и другая полезная коммуникационная программа — LPT 3D Hard Analyzer. Программа представляет собой графический запоминающий анализатор-осциллограф, предназначенный для снятия цифровых сигналов и протоколов устройств, подключенных к параллельному порту компьютера в ОС Windows 95/98/Mе/NT/2000/XP.

LPT 3D Hard Analyzer работает через LPT-порт и позволяет анализировать пять входных линий (каналов) и 12 выходных каналов (то есть управлять цифровыми сигналами с компьютера) в режиме SPP или манипулировать четырьмя выходными и 14 входными параметрами в режиме EPP. Двунаправленный ЕРР-режим параллельного порта предусмотрен практически на всех компьютерах, выпущенных после 1993 года. Иногда, правда, он не включен по умолчанию в BIOS (это необходимо проверить и по возможности — включить).

При работе в режиме осциллографа программа запоминает все 17 графиков (линий), глубина (отображаемая длина графика по времени) которых ограничена только свободной памятью компьютера (а с учетом файла подкачки в OC Windows это будет несколько сот мегабайт). Также доступна возможность автоматического сохранения каждой новой страницы в графическом формате.

Анализатор-осциллограф LPT 3D Hard Analyzer строит графики изменения данных в двумерном и трехмерном виде, а также показывает две независимые диаграммы: 17-канальный осциллограф (по биту на канал) и график регистров порта (входных, выходных, контрольных). Имеется регулировка скорости анализа, и отображается общее количество циклов за весь период продвижения графика. Можно программировать и количество циклов с возможностью копирования графиков в память (глубина построения ограничена только доступной оперативной памятью компьютера). Программа имеет средства для экономии системных ресурсов во время считывания данных с высокоскоростных устройств, подключенных к LPT-порту и синхронизированных с ним данной программой (то есть она может применяться на относительно слабых компьютерах). При отключении графического режима вывода на дисплей графики копируются только в память компьютера — в результате скорость работы программы повышается в десятки раз. По окончании анализа график просматривается так же, как если бы он был переведен в графический режим отображения. Прокрутка графиков осуществляется плавно и постранично (правой кнопкой мыши). Имеется гибкая настройка скорости и шага прокрутки, а также возможность автоматического сжатия всей диаграммы в пределах одной страницы. Снимки состояния выбранной страницы графика можно запоминать в форматах BMP и WMF (Windows-метафайл) или задавать автоматическое сохранение в отдельный файл каждой новой страницы. Для просмотра в пакете имеется встроенный браузер графических файлов.

Модуль управления портами основан на ядре кода другой программы Валерия Ковтуна — XP LPT, использующей драйвер ввода-вывода LPT WDMIO.

Программа XP LPT предназначена для управления параллельными портами компьютера из ОС Windows 9x/2000/XP и имеет следующие возможности:

  • производит автоматическую регистрацию драйвера в Windows XP на правах администратора системы;
  • ведет автоматическую проверку установленных портов;
  • осуществляет одновременное чтение регистров данных, контроля и состояния выбранного LPT-порта;
  • отображает содержимое регистров одновременно в разных форматах (десятичном и шестнадцатеричном), что избавляет от необходимости пересчета.

У этой программы доступен исходный код, описание, а также примеры создания программ для управления внешними устройствами посредством параллельного порта на основе данного решения.

Как мы уже упоминали, программа функционирует через драйвер ввода-вывода LPT WDMIO и предназначена специально для обучения и отладки самостоятельно изготавливаемых программ управления внешними устройствами посредством параллельного порта в среде Windows.

Валерий Ковтун также создал программу PortControl, которая используется для управления параллельным портом с 17-битным анализатором протокола обмена данными устройств, использующих LPT-порт компьютера. Программа написана для семейства ОС Windows и обладает следующими возможностями:

  • имеются три независимых канала, с помощью которых реализуются ввод адреса порта (регистра), автоматическое чтение данных с порта, запись данных в порт в десятичном и шестнадцатеричном формате, а также отображение данных в форматах bite, word и Dword;
  • отображается состояние каждого из 17 битов LPT-порта и осуществляется управление выходными битами;
  • имеется девять программируемых банков памяти порт/данные;
  • работает 17-канальный анализатор-осциллограф логического состояния каждого бита с возможностью установки скорости анализа (по времени), синхронизации по любому из 17 битов — как по высокому уровню (1), так и по низкому (0), а также работает счетчик переданных данных по каждому биту и многие другие функции для удобной проверки и настройки цифровых устройств, подключенных к компьютеру.

Эта программа может использоваться как в качестве цифрового многоканального осциллографа, так и для управления внешними устройствами посредством компьютера.

Программы анализа и управления портами могут иметь различные применения. Во-первых, их можно использовать для детальной проверки и тестирования работоспособности параллельного порта компьютера, например для проверки быстродействия LPT-порта и системы в целом с помощью режима Test out. Причем все операции удобно наблюдать во времени с помощью встроенного 17-канального анализатора-осциллографа с возможностью гибкой настройки под определенный тип измерений.

Для анализа подключенных к компьютеру высокоскоростных шин передачи цифровых данных различных радиоэлектронных устройств и микросхем рекомендуется компьютер с частотой процессора не ниже 300 МГц. Но для низкоскоростных устройств нормально работают и более слабые компьютеры под управлением Windows 95.

Во-вторых, программы-анализаторы можно применять для управления, анализа, настройки, разработки, проверки и ремонта цифровых радиоэлектронных схем (отдельных модулей, блоков, управляющих шин, протоколов управления синтезаторов частот, элементов управления цифровыми индикаторами, программаторами ПЗУ и т.д.), то есть там, где широко используются цифровые микросхемы, формирующие управляющие сигналы и как-то реагирующие на них.

В-третьих, программы — анализаторы портов можно просто использовать для считывания протоколов обмена. А синхронизировав шину данных и управляющие сигналы устройств хранения и идентификации информации, можно даже прочитать закодированные в последовательности нулей и единиц служебные сигналы и/или пароли доступа. В общем, эти программы предназначены для расширения возможностей радиолюбителя, электронщика или инженера-разработчика. Наглядное изучение протоколов работы радиоэлектронных устройств может быть полезно также при разработке собственного программного обеспечения под управлением различных контроллеров.

В-четвертых, программы-анализаторы окажутся очень полезными для ремонта оргтехники, так или иначе использующей параллельный порт компьютера, — различных принтеров, сканеров, кассовых аппаратов и других устройств.

В-пятых, перечисленные программы пригодятся начинающим программистам. Например, если вы решили написать небольшую программу для управления теми или иными внешними устройствами посредством параллельного порта, то вам будет очень удобно визуально наблюдать алгоритм работы вашей программы в многофункциональном интерфейсе PortControl. В результате вам удастся вовремя обнаружить и устранить допущенные ошибки без использования измерительных приборов на выходе порта и без вмешательства в схемотехнику управляемого устройства.

И наконец, для параллельного порта Валерий Ковтун предлагает полезную программу PinRegistrator, предназначенную для слежения и регистрации логического состояния битов LPT-порта. Написана программа под Windows 95/98/Me и протоколирует состояние параллельного порта автоматически или вручную.

Контроль USB-порта компьютера


Advanced USB Monitor может отображать передаваемые пакеты данных в читаемом виде, декодировать дескрипторы, определять ошибки в пакетах и измерять производительность устройств. Во время захвата пакеты данных могут отображаться в реальном времени, что позволяет отслеживать состояние устройств. Пакеты данных сохраняются в хронологическом порядке и содержат полную информацию об адресах и конечных точках. Это позволяет очень просто идентифицировать пакеты, фильтровать их и осуществлять по ним поиск. Программа предоставляет несколько уровней детализации при отображении данных. Быстрое декодирование USB-трафика дает возможность работать даже с такими скоростными устройствами, как USB-диски или USB-камеры. Причем захват, мониторинг и запись захватываемых данных происходят в реальном времени. С помощью Advanced USB Monitor вы можете просматривать трафик в тот же самый момент, когда он возникает, причем одновременно для ряда USB-устройств с помощью нескольких одновременно открытых окон мониторинга.

Использование драйвера ядра для захвата данных с поддержкой WDM, WMI, Power Management и PNP позволяет достичь полной совместимости с операционной системой и USB-устройствами, обеспечивая максимальное быстродействие.

Программа также дает возможность измерить производительность любого USB-устройства. Advanced USB Monitor легко ориентируется в топологии USB-устройств и получает детальную техническую информацию о таких устройствах, как USB-диски (интерфейсы, конечные точки, информация в реестре, информация о классе и многое другое). В конце исследования можно получить готовый отчет о подключенных устройствах и USB-трафике, а по окончании исследований распечатать его на принтере. Кроме того, программа имеет развитые функции экспорта данных в форматы PDF, XML или Microsoft Word, что позволяет не ограничивать процесс постобработки данных только одной этой программой.


Итак, USB-осциллограф обеспечивает следующие режимы работы:

Кроме того, USB-осциллограф позволяет сохранять результаты всех измерений в виде векторного или растрового рисунка для последующего импорта в другие программы или для сохранения в файле для последующего анализа. Результаты всех измерений можно распечатывать, копировать в буфер обмена, а также задавать события и сопровождать их звуковым комментарием. Можно рассчитывать различные цифровые фильтры и производить фильтрацию аналоговых сигналов и сглаживание временных диаграмм осциллографа. Устройство позволяет отображать статистику по всем каналам логического анализатора и генератора.

Однако USB-осциллографы — это уже не просто программы, а устройства, выполненные в виде внешних блоков с USB-интерфейсом и сопровождаемые обслуживающими их программными модулями. То есть это целый универсальный измерительный комплекс, состоящий из коммутационной приставки и компьютера. Кстати, производить обновление прошивки такого устройства можно по USB-шине, что позволяет дополнять возможности устройства любыми функциями на заказ.

Итак, вооружившись необходимым инструментарием, мы теперь имеем возможность самостоятельно писать программы управления различными внешними устройствами с помощью любых портов нашего компьютера.

date

02.02.2016

directory

Windows 7

comments

комментариев 15

Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).

Изменить номер назначенного COM порта

Смена номера COM порта для конкретного устройства

В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.

Важно! Настоятельно рекомендуем предварительно создать резервную копию данной ветки реестра (File -> Export). В том случае, если что-то пойдет не так, вы сможете вернуться к первоначальной конфигурации портов. Важно! Будьте предельно внимательными, ни в коем случае не добавьте в этот параметр дополнительные байт, иначе система может начать падать в BSOD.

SERIALCOMM

Примечание. В разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM можно увидеться список COM портов, подключенных к системе.

Требования.
Статья применима для Windows 2000/XP/Vista/7.

Информация.
При установке некоторых программ иногда возникает проблема с доступностью порта. Т.е. вы устанавливаете программу, а она вам говорит: "Извините, но предпочитаемый порт номер занят!". И самое интересное программа не говорит чем или кем занят порт.

Как определить каким процессом (программой) занят порт.
1. В меню "Пуск" выберите пункт "Выполнить";
2. В поле "Открыть" наберите команду cmd и нажмите кнопку "ОК";

Откроется окно командной строки, примерно такого вида:

3. Наберите команду netstat -ano и нажмите кнопку "Ввод" (Enter) на клавиатуре;

Результатом выполнения данной команды, должен быть список всех активных подключений, с ip-адресами и номерами портов.

4. Теперь в колонке "Локальный адрес", находим нужный нам порт и записываем его идентификатор в колонке "PID";

Например порт номер 80, его идентификатор 440.

5. Снова открываем меню "Пучк" и выбираем пункт "Выполнить";
6. В поле "Открыть" вводим команду taskmgr и нажимаем кнопку "ОК";
7. В окне "Диспетчер задач Windows" переходим на вкладку "Процессы";
8. В главном меню открываем пункт "Вид" и выбираем пункт "Выбрать столбцы. ";
9. В окне "Выбор столбцов" находим пункт "Идентиф. процесса (PID)" и ставим рядом с ним галочку;
10. Нажимаем кнопку "ОК";
11. Теперь в окне "Диспетчер задач Windows", нажимаем на заголовок столбца "PID", для сортировки процессов по возрастанию;
12. Находим номер нашего процесса 440 и в столбце "Имя образа", смотрим какой процесс занимает наш порт;

Каждый раз при подключении нового COM устройства или USB устройства (верно для модем, мобильных телефонов, Bluetooth, конвертеров последовательных портов в USB и т.п.), Windows определяет его через механизм Plug-n-Play и назначит ему некий номер COM порта в диапазоне от 1 до 255. При повторном подключении этого же устройств, ему назначается ранее зарезервированный за ним COM порт. Новым устройствам выдается первый незанятый номер COM порта. Не редкость, когда внешние устройства при подключении создают сразу несколько COM портов (в моем случае после подключения адаптер Bluetooth, в системе появилось сразу 10 . новых COM портов).

Ряд приложений (как правило, довольно древних), способны адресовать только двухзначные номера COM портов, отказываясь работать с COM100 и выше. В самых «запущенных» вариантах, такие программы корректно работают только портами с COM1-COM9. Что делать, если подключенное устройство получило высокий номер? Можно ли сбросить нумерацию для зарезервированных COM портов и удалить назначенные порты? Попробуем разобраться на примере Windows 7.

Как правило в свойствах оборудования изменить выданный COM порт на другой не получается, т.к. система пишет, что все «низкие» COM порт уже используются (in use).


Смена номера COM порта для конкретного устройства

В первую очередь стоит попробовать вручную переопределить номер COM порта для определенного COM-устройства. Предположим требуемый COM порт уже занят, и мы хотим его попробовать его освободить.

Приведенная выше методика не всегда позволяет освободить занятый COM порт. В этом случае придется прибегнуть к редактированию реестра.

Сброс привязок COM портов через реестр

Информация об используемых COM портах хранится в ключе реестра CommDB в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCOM Name Arbiter

    Откройте редактор реестра (regedit) и перейдите в указанную ветку.


Значение параметра ComDB в двоичном формате определяет список COM портов зарезервированных в системе. Каждый бит определяет состояние соответствующего порта (от 1 до 255). К примеру, если нам нужно оставить резервацию только для COM3, hex значение ComDB будет равно 04 (0000 0100)


Здесь нам необходима команда netstat -ano (прописываем именно так, с пробелом перед дефисом и без пробела без него!).

Мы увидим множество локальных адресов. все они имеют примерный вид xxx.xxx.x.xxx:PORT. Да, порт прописывается после двоеточия.

Выбираем конкретный порт, проводим пальцем до последнего столбца и узнаем ID процесса. Запоминаем число ID. На этом работа с командной строкой закончена.

Запускаем диспетчер задач (как его вызвать, знают все: Ctrl+Alt+Del или Ctrl+Shift+ESC).

Откроется окно командной строки, примерно такого вида:


или вот так Netstat -a -n -o –b


Например порт номер 80, его идентификатор 440.

В нашем случаи это Apache.exe


taskkill [/s компьютер] [/u домен\пользователь [/p пароль]]] [/fi имя_фильтра] [/pid код_процесса]|[/im имя_образа] [/f][/t]

Параметры
/s компьютер
Указывает имя или IP-адрес удаленного компьютера (не используйте обратную косую черту). По умолчанию используется локальный компьютер.
/u домен\пользователь
Выполнение команды с разрешениями учетной записи пользователя, который указан как пользователь или домен\пользователь. По умолчанию используются разрешения текущего вошедшего пользователя компьютера, с которого поступила эта команда.
/p пароль
Определяет пароль учетной записи пользователя, заданной параметром /u.
/fi имя_фильтра
Задает типы процессов, которые следует завершить и не следует. Допустимыми именами фильтров, операторами и значениями являются следующие. Имя Операторы Значение
Hostname eq, ne Любая допустимая строка
Status eq, ne RUNNING|NOT RESPONDING
Imagename eq, ne Любая допустимая строка
PID eg, ne, gt, lt, ge, le Любой положительное число
Session eg, ne, gt, lt, ge, le Любой действительный номер сеанса
CPUTime eg, ne, gt, lt, ge, le Допустимое время в формате чч:мм:сс. Компоненты мм и сс должны иметь значения от 0 до 59, а чч может быть любым значением числа без знака
Memusage eg, ne, gt, lt, ge, le Любое целое число
Username eq, ne Любое действительное имя пользователя ([домен\]пользователь).
Services eq, ne Любая допустимая строка
Windowtitle eq, ne Любая допустимая строка

/pid код_процесса
Указывает код процесса, который необходимо завершить.
/im имя_образа
Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.
/f
Указывает, что процесс(ы) должен быть принудительно завершен. Этот параметр не действует для удаленных процессов, все удаленные процессы завершаются принудительно.
/t
Задает завершение всех дочерних процессов вместе с родительским, такое действие обычно известно как уничтожение дерева.
/?
Отображает справку в командной строке.
Примечания
Подстановочный символ (*) принимается только при указании вместе с фильтрами.
Завершение удаленных процессов всегда выполняется принудительно независимо от указания параметра /f.
Указание имени компьютера в качестве фильтра HOSTNAME приведет к завершению работы и остановке всех процессов.
Используйте команду tasklist для определения кода завершаемого процесса.
Команда taskkill является заменой средству Kill.
Примеры
Далее приведены примеры использования команды taskkill:

Читайте также: