Нужно обнаружить на каком порту "висит" модем.
Также хотелось-бы получить его имя, которое в диспетчере устройств отображается.
Перебрать доступные порты в системе модно так:
- Код: Выделить всё
Sub GetSerialPortNames()
' Отобразить все COM порты
For Each sp As String In My.Computer.Ports.SerialPortNames
ListBox1.Items.Add(sp)
Next
End Sub
Далее следующим кодом можно открыть порт и отправить туда команду at, модем должен ответить ОК(если он конечно там есть)
Но проблема в том, что если модем на COM2, а перебором всех портов начинаю с 1-го программа вылетает с ошибкой Access to the port 'COM1' is denied..
- Код: Выделить всё
Using com1 As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort(ListBox1.SelectedItem, 9600)
com1.DtrEnable = True
com1.Write("at" & vbCrLf)
End Using
Поэтому было-бы здорово, если можно было-бы как-то по другому проверить наличие модема.
И программа могла сама выбрать модем, без участия пользователя.
Или как минимум, увидеть имя модема и соответствующий ему ком порт, чтобы выбирать не вслепую из доступных портов.
Если кто знает подскажите как это можно сделать!!!
VB 2008
Модем - Zyxel omni 56k PCI
Спасибо всем за коменты!!!