SerialPort.GetPortNames () не возвращает правильный результат - PullRequest
0 голосов
/ 09 июля 2010

Я разрабатываю небольшое демонстрационное приложение для Windows Mobile 6.1, чтобы получить список всех последовательных портов и устройств Bluetooth, настроенных на них.У меня странная проблема.

  1. Я вижу всего 10 COM-портов, когда захожу в Настройки-> Подключения-> Bluetooth-> COM-порты.Но когда я использую SerialPort.GetPortNames(), чтобы получить все порты, он показывает 9 портов, т.е. на один порт меньше.Последний порт, т. Е. COM09, не возвращается в наборе результатов.

  2. Затем я удалил одно из сопряженных устройств, настроенных на одном из COM-портов (COM08), и SerialPort.GetPortNames() вернул результатустановить без порта COM08.

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

Может ли кто-нибудь сказать мне причину и направить меня дальше, чтобы решить проблему?

1 Ответ

0 голосов
/ 09 июля 2010

Драйвер Bluetootch, вероятно, изменяет раздел реестра, в котором находятся драйверы, а GetPortNames, вероятно, просматривает этот ключ.

Посмотрите на HKLM \ Drivers \ BuiltIn и HKLM \ Drivers \ Active с помощью remove.Редактор реестра и посмотреть, что происходит.Скорее всего, вы можете написать свой собственный анализатор, который просматривает эти значения для того, что вам нужно.

...