我的程序是用com事件触发来接收短信的,但这样会造成有些信息接收不到,请问各位高人怎么解决这个问题?听说还有一种查询的方式来接收短信,那是怎么回事?谁能给我解释一下好吗?
解决方案 »
- 很久的一个问题了——双屏幕
- 把老外的那个CSocketMaster类封装了一下,弄成了一个高仿MSWINSCK.OCX的自定义控件,方便使用
- 小弟在做海康卡DS-4004HC,遇到个原始数据回调问题,请教各位了~
- 對象不支持該屬性或方法:MSComm1.CommPort 是什麽原因?
- 极难问题,有兴趣者请进
- VB:安装,制作问题?请教!
- 请问:怎么把Picture控件设置成透明的
- 那位大虾帮忙看一下,非常奇怪的问题!
- 求救:怎样截住软件向个发送的各种URL.
- vb6调用tecplot这语句是什么意思啊????急求帮忙
- Excel VBA日期选择
- 如何在datagrid控件中存放DTPicker控件?
Dim s() As Byte
Dim SS As String
If MSComm1.InBufferCount > 0 Then
s = MSComm1.Input
SS = s
End If
End Sub就是这个意思,推荐使用
Private Sub Timer1_Timer()
Dim s() As Byte
Dim SS As String
If MSComm1.InBufferCount > 0 Then
s = MSComm1.Input
SS = s
msgbox ss '看看,当然不能这样简单处理,因为用Timer一次读一点,等读出"OK"
'或"ERROR"一条信息才算读完,RetString = RetString + SS
'RetString 公共变量
End If
End Sub
Private Sub Timer1_Timer()
Dim sMessage As String
Dim bt() As Byte
Dim buf As String
If MSComm1.InBufferCount > 0 Then
bt = MSComm1.Input
buf = bt
MsgBox "buf" & buf
sMessage = StrConv(buf, vbUnicode)
End If
If InStr(sMessage, "+CMTI") > 0 Then
lMessageNum = 1
sMessageStr = sMessageStr & sMessage
End If
If lMessageNum > 0 Then
sMessageStr = sMessageStr & sMessage
'判断是否接收到短信
lIndex = GetMessageTF(sMessageStr)
MsgBox "lindex is:" & lIndex
If lIndex <> -1 Then
MSComm1.Output = "AT+CMGR=" & CStr(lIndex) & vbCrLf
bMsgRec = True
End If
sMessageStr = ""
lMessageNum = 0
End If
'获得短信原始信息并进行操作
If bMsgRec Then
If InStr(sMessage, "OK") > 0 Then
'已经获得短信全部原始内容,将内容进行解析
Call GetMessageStrPDU(sMsg, sreaded, stelNo, dMtime, sMsgContent)
'短信接收列表显示
sMsg = ""
bMsgRec = False
Else
sMsg = sMsg & sMessage
End If
End Sub
2 循环等待信息接收完毕。这里使用了Windows API 过程 GetTickCount() 来控制超时。
Private Sub MSComm_OnComm ()
If MSComm1.CommEvent = comEvReceive And _
MSComm1.InBufferCount > 0 Then
tt = GetTickCount() + myDelayTime
bTimeOut = False
Do
DoEvents
If tt > GetTickCount() Then bTimeOut = True: Exit Do
bt = MSComm1.Input
buf = bt
sMessage = StrConv(buf, vbUnicode)
If InStr(sMessage, "OK") or InStr(sMessage, "Error") Then Exit Do
Loop
End If
End Sub
to lpfreemail(路漫漫): 我还没收到你的程序呀,我这里还有一个很奇怪的事情,就是只有的我自己的手机发送的短信才能全部收到并回复,别人的手机发的数字加字符形式的信息程序不能正确解码。这事真有意思,你觉得会是什么原因呢?