vbmscomm控件如何使用

来源:百度知道 编辑:UC知道 时间:2024/09/21 23:36:08
下面是用来测试来电显示的。
目前下面的代码可以完成来电的提示,但如何提取来电的号码和时间呢,谢谢。

Private Sub Form_Load()

Comm.CommPort = 3 '设置Modem所在的端口
Comm.PortOpen = True '打开通讯口
Time1.Interval = 500
End Sub

Private Sub Form_Unload(Cancel As Integer)
Comm.PortOpen = False '关闭通讯口
End Sub

Private Sub Time1_Timer()
Dim Buffer As Variant
Dim Strtime As String
StrtimeLaidian = Time()
Buffer = LTrim(Comm.Input) '获得Modem的响应信息
If InStr(Buffer, "RING") > 0 Then
MsgBox "来电话了!!!!!!!!!!!!!!!!!", vbInformation, "hello"
‘Debug.Print "振铃" '如果是振铃则显示振铃
End If
End Sub

--------------------------------------------------------

如何截取来电的数据呢,和modem有关系吗? 我用的是笔记本。

MODEM的AT命令CID和VCID是设置是不是来电显示的,如果电信开通了来电显示功能

就能通过MODEM来显示对方的电话号码。那么首先设置CID=1或是VCID=1

般来说来电显示的信息为:

DATE = MMDD "来电日期 MMDD

TIME = HHMM "来电时间 HHMM

NMBR = ######## "来电号码

程序实现如下,设置MSComm1的相关设置,并建两个Label为Label1和Label2

Function OpenCID(OpenCLose As Boolean) As Boolean

'打开或是关毕来电显示功能

On Error Resume Next

Dim ArrCID(1) As String

ArrCID(0) = "at#cid=" & IIf(openclode, 1, 0)

ArrCID(1) = "at#vcid=" & IIf(openclode, 1, 0)

MSComm1.RThreshold = 0

For i = 0 To 1

MSComm1.Output = ArrCID(i) & vbCr

EndTime = Timer + 0.5

Do While bStop = False

nTemp = nTemp + 1

If MSComm1.InBufferCount >= 2 Then

sTemp = MSComm1.Input

If InStr(sTemp, "OK") = 0 Then

bStop =