mscomm 控制modem,如何判断已接通对方电话
wpmxm 2005-08-02 04:30:11 '微软的实例,是判断已经连通modem么?如何判断已经接通对方电话,即对方电话已经响起来? 说是可以接收到电话的振铃,怎么表示的呢? 分不够再加。
Dim DialString$, FromModem$, dummy
' AT 是贺氏兼容 ATTENTION 命令并且要求发送命令到调制解调器。
' DT 意味着"音频拨号。" 这个拨号命令用于音频, 相对的是脉冲 (DP = 脉冲拨号)。
' Numbers$ 为要拨的电话号码。
' 分号告知调制解调器拨号后返回命令模式(这一点很重要)。
' 一个回车, vbCr, 当发送命令到调制解调器时被要求。
DialString$ = "ATDT" + Number$ + ";" + vbCr
' 通信端口设置
' 假设鼠标器连接到 COM1, 那么通信端口设置为 COM2
MSComm1.CommPort = 3
MSComm1.Settings = "9600,N,8,1"
' 打开通信端口
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox " COM3: 不可用。 更改 CommPort 属性使其使用 COM1。"
Exit Sub
End If
' 清空输入缓冲区。
MSComm1.InBufferCount = 0
' 拨电话号码。
MSComm1.Output = DialString$
' 等待从调制解调器返回"OK" 。
Do
dummy = DoEvents()
' 如果缓冲区中有数据,则把它读出来。
If MSComm1.InBufferCount Then
FromModem$ = FromModem$ + MSComm1.Input
' 检查 "OK"。
If InStr(FromModem$, "OK") Then '---------->这里是判断已经连通modem?如何判断已经接通对方电话,即对方电话已经响起来? 说是可以接收到电话的振铃,怎么表示的呢?
' 提醒用户摘电话。
Beep
MsgBox "请您摘电话然后按“回车”键或单击“确定”"
Exit Do
End If
End If
' 用户是否选择“取消”?
If CancelFlag Then
CancelFlag = False
Exit Do
End If
Loop
' 断开与调制解调器的连接。
MSComm1.Output = "ATH" + vbCr
' 关闭端口。
MSComm1.PortOpen = False