Реестр windows номера портов

Реестр windows номера портов

Здравствуйте Аноним, вы писали:

А>В реестре находится информация об установленных в системе com портах.
А>HKEY_CURRENT_USER\HARDWARE\DEVICEMAP\SERIALCOMM
А>Как мне програмно узнать какие и сколько портов установлено , с последующим занесением значении в ComboBox ?
А>Буду презнателен за вашу помощь.

Нет ни чего проще.
только не HKEY_CURRENT_USER а HKEY_LOCAL_MACHINE
//——————————при инициализации
HKEY hKey;
DWORD result;
result=RegOpenKey(HKEY_LOCAL_MACHINE,»HARDWARE\\DEVICEMAP\\SERIALCOMM»,&hKey);
if(result==ERROR_SUCCESS)
<
FillComboBox(hKey);
>
RegCloseKey(hKey);

DWORD ComCount; // колличество значений в ключе
DWORD i,retValue;

CHAR Name[15];
unsigned char Data[5];
DWORD sizeName = 15,sizeData= 5;
RegQueryInfoKey(hKey,0,0,0,0,0,0,&ComCount,0,0,0,0);
if (ComCount)
<
for (i = 0, retValue = ERROR_SUCCESS;i Re: Com порты в реестре

От: Yury Kharash
Дата: 24.07.01 05:49
Оценка:

Здравствуйте Аноним, вы писали:

А>В реестре находится информация об установленных в системе com портах.
А>HKEY_CURRENT_USER\HARDWARE\DEVICEMAP\SERIALCOMM
А>Как мне програмно узнать какие и сколько портов установлено , с последующим занесением значении в ComboBox ?
А>Буду презнателен за вашу помощь.

От: Аноним
Дата: 24.08.01 09:24
Оценка:

Здравствуйте Аноним, вы писали:

А>В реестре находится информация об установленных в системе com портах.
А>HKEY_CURRENT_USER\HARDWARE\DEVICEMAP\SERIALCOMM
А>Как мне програмно узнать какие и сколько портов установлено , с последующим занесением значении в ComboBox ?
А>Буду презнателен за вашу помощь.

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

function HowManyCommPorts:byte;
var
i:byte;
Begin
asm
int 11h;
shr AH, 1;
and AH, $7;
mov Result,AH;
end;
End;
Но данная процедура не работает под НТ, под НТ приходиться считывать данные из реестра.

От: TSS http://www.sdl.ru
Дата: 30.08.01 06:18
Оценка:

Здравствуйте Аноним, вы писали:

А>В реестре находится информация об установленных в системе com портах.
А>HKEY_CURRENT_USER\HARDWARE\DEVICEMAP\SERIALCOMM
А>Как мне програмно узнать какие и сколько портов установлено , с последующим занесением значении в ComboBox ?
А>Буду презнателен за вашу помощь.

Самый простой способ — это открывать CreateFile («COM1». ), CreateFile («COM2». ), т.к. в devicemap система держит ИМХО только «физические» устройства. Но, та же NT предоставляет так называемые «виртуальные» порты. Опрос портов (открытых через CreateFile) можно произвести через GetCommState ().

Очистка занятых COM портов

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

Читайте также:  Как переустановить удаленный рабочий стол windows 10

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

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

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

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

  1. Запустим диспетчер устройств (Device Manager) таким образом: set devmgr_show_nonpresent_devices=1
    start devmgmt.msc
  2. В меню консоли выберем View->Show Hidden Devices.
  3. Разверните ветку Ports (COM &LPT) и в списке найдите устройство, которому назначен нужный COM порт (бледная иконка означает, что данный COM порт назначен, но в настоящий момент это устройство не подключено). Щелкните по нему ПКМ и выберите Uninstall
  4. Освобожденный COM порт может быть назначен другому устройству. Найдите в этой же ветке свое устройство, откройте окно его свойств (Properties). Затем перейдите на вкладку PortSettings и нажмите кнопку Advanced. В выпадающем списке выберите неиспользуемый COM порт.

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

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

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

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


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

Получение списка доступных COM портов

04.01.2018

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

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

Первый вариант заключается в том, чтобы зашить в программу самые распространенные номера портов (обычно COM 1, COM 2, COM 3 и некоторые другие). Недостатком этого подхода является то, что вы не всегда можете охватить все доступные порты. Например, я видел системы, на которых встречается порты COM 22, COM 23, COM 24 (порты были виртуальными, но суть вопроса это не меняет). Не будете же вы зашивать столько номеров. А если завтра встретится COM 100?

Второй вариант заключается в проверке большого количества портов на их доступность. Мы просматриваем порты COM 1, COM 2, …. COM 100 и пытаемся открыть каждый из них. Если это удалось, значит, порт есть. У этого подхода несколько недостатков.

Во-первых, такой перебор занимает время, а регулярные вызовы функции CreateFile напрасно расходуют системные ресурсы.

Читайте также:  Mac os file with users

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

В-третьих, он не решает проблему охвата всего многообразия возможных портов.

Красивое решение основывается на том факте, что информация о доступных COM портах (в том числе виртуальных) в системах Windows хранится в реестре. Точнее в ветке HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM\. Там COM порты хранятся в виде строк: « COM 1», « COM 2», « COM 3» и т.д. Отсюда сразу возникает решение – нужно перебрать все строковые параметры в данном разделе реестра.

Ниже приводится полный исходный код примера, демонстрирующего данный метод.

В заключение лишь отмечу, что я использую этот подход во многих своих проектах, и он еще ни разу не подводил меня.

Управление сетевыми портами через реестр

Управление сетевыми портами через реестр — на сколько это возможно?

Возможно ли где то в реестре Windows указать, что доступ к HTTP(80) порту необходимо закрыть, а доступ к FTP(21) открыть?
Или порты ICQ, SKYPE — закрывать, открывать, меняя параметры в реестре?

Удаленное управление USB портами
Посоветуйте программу на сервак для удаленного управления USB портами клиентов сети.

Управление COM- и LPT-портами через API из VB
См. сабж. В Сети много примеров, но они или на Дельфи, или на Си. Пробую перенести в VB — не.

Работа с сетевыми портами на .Net
Можно ли на .Net рабоать с сетевыми портами? Желательно не использовать WIN API. Что можно.

Удаленное управление компьютером через реестр и как это предотвратить?
Всем доброго времени суток. Как то давно появилась такая проблема. Суть в том что моим компьютером.

Про него мало знают.
1) Если не показаны скрытые файл — делаем такой же файл но с использованием техники фишинга. hosts и hоsts разные имена (проверь). Оригинал делаем скрытым, и меняем.
2) Меняем путь к этому файлу в реестре *HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters* DataBasePath меняем на другой, и туда кладем наши оригиналы. Windows будет смотреть туда.

Но это просекает софт специализированный, он по реестру и смотрит.

3) Ставим простой, бесплатный прокси на машину которая раньше всех включается, позже всех выключается (сервер). В IExplorer прописываем прокси на этот комп.
В программе прокси ставим и рулим как хотим, хоть доступ по паролю. У вас будет полная статистика.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Управление сетевыми интерфейсами
Подскажите пожалуйста каким способом можно получить информацию о сетевых интерфейсах и изменять их.

Управление сетевыми паролями пользователей
Обьясните пож-та каким образом в небольшой сети (до 60-70) компьютеров под управлением Windows XP/7.

управление портами
Есть USB-фонарик, условно. Как подавать ток на USB-порт, как ограничить ток USB-порта? В целом.

Удаленное управление COM портами
Столкнулся с проблемой, которую пока не получается решить, надеюсь на подсказки. Имеем: N-ное.

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

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

Читайте также:  Режим планшета windows 10 зачем нужен

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

Содержание статьи:

Какой командой можно проверить открытые порты Windows 10 и 7
Как определить открытые порты в командной строке Windows 10
Как узнать, какая именно программа использует открытые порты

Поэтому пришло время поговорить о том, как проверить открытые порты компьютера через командную строку. И поверьте, это очень просто. С этим справиться даже первоклассник.

Все дальнейшие действия будут показаны на примере Windows 10, хотя и в других версиях данной ОС все происходит аналогично. Итак, начинаем «колдовать». Для этого первым делом жмем правой кнопкой мыши по кнопке «Пуск» и открываем командную строку.

В ней вводим простенькую команду следующего вида:

После этого запустится процесс сканирования. Естественно, здесь нужно немножко подождать, поэтому надо запастись терпением или чаем. И вот, на рисунке ниже в желтой рамке показаны открытые порты. Как видите, в графе «Состояние» они помечены как «LISTENING» (то есть слушающий).

Если же вместо этого значения будет надпись «ESTABLISHED», значит, в это время соединение установлено и идет передача данных между двумя узлами сети. Вот так это выглядит наглядно.

Посмотрите, во втором и третьем столбцах показаны IP-адреса этих узлов. В моем случае никакой опасности нет, поскольку адрес «127.0.0.1» относится к одному и тому же локальному компьютеру. То есть все происходит в пределах домашнего компа, внешней угрозы нет.

Также могут присутствовать в общем списке значения типа «CLOSE_WAIT» (ожидания закрытия соединения) и «TIME_WAIT» (превышение времени ответа). Внимание на скриншот ниже.

Хорошо, вот мы узнали какие порты открыты, но что делать дальше с этим хозяйством? На самом деле все просто. Рассмотрим ситуацию на реальном примере. Допустим мы хотим узнать, какой программой открыт порт «1688» (он выделен на рисунке выше).

Для этого нужно скопировать значение из последнего столбца, который называется «PID». В нашем случае это цифра «9184». Теперь следует открыть диспетчер задач Windows одновременным нажатием клавиш «Ctrl+Alt+Del», а затем перейти на вкладку «Подробности».

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

На этом рассказ о том, как проверить открытые порты компьютера через командную строку Windows 10 и 7 версий подошел к завершению. Если остались какие-то вопросы, задавайте их в комментариях к публикации.

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

Оцените статью