СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Есть модем с AutoAnswer'ом. Когда кто-то звонит, он берет трубку. Как отследить, есть ли звонок, как из VB работать с AT командами, как не дать модему взять трубку?

Ответ

В VB 6.0 Enterprise Edition есть контрол «MSComm». Помещаете контрол на форму, к примеру, под именем «com». Дальше следующий код:

Private Sub Form_Load()
Com.CommPort = 4 'номер COM-порта, на котором висит модем
Com.PortOpen = True 'Открываем порт
End Sub
Private Sub Комманда1_Click() 'командная кнопка
Com.Output = "atz" '& Chr(13) & Chr(10) 'посылаем AT команду «снять трубку» (или какую-то другую)
End Sub
Private Sub Часы1_Timer() 'таймер с периодом 0.1 сек
If Com.InBufferCount > 0 Then ' если буфер изменился то
Print Com.Input 'печатаем то, что в буфере (сигнал «поступил звонок» выглядит как строка «RING»)
End If
End Sub

В регистре S0 модема находится количество гудков, прежде чем модем снимет трубку. Комманда «AT S0=0» запрещает модему снимать трубку.

MasterMax



Copyright © 2000-2004 Сообщество Чайников
Контактная информация