刚从学校毕业不久,对短信开发很感兴趣,通过VB6自带Mscomm32.ocx控件开发群发系统。采用GSM Moodem终端设备。PDU编码、解码、单条短信发送都没问题了,但遇到如下几个问题,困绕了几周都没搞定,迫于无奈只好向大家求救了,希望大家尽情指教,再此先谢谢了一、发送成功与否怎样进行叛断?
当执行以下代码后,总不能捕获发送状态叛断?
'// msCom 是MScomm32.ocx控件
'// funPDU 是PDU编码函数 dim txtRecon as string '发送状态捕获
msCom.Output = "AT+CMGS=" & Str(15 + txtLen) + vbCr
msCom.Output = funPDU(txtNumber.Text, txtNo.Text, txtSend.Text, txtLen) + Chr$(26) txtRecon = msCom.Input '问题在这儿,总不能捕获到成功与否,没有提示
If InStr(txtRecon, "OK") Then
msgbox "发送成功"
elseIf InStr(txtRecon, "ERROR") Then
msgbox "发送成功"
end if
二、关于群发问题?
想了很久,一直没有一个好的解决方法,我采用循环发送发式,但结果只有最后一个人能收到,其他人都没有收到实现方式如下: '// frmMain.msCom 是MScomm32.ocx控件
'// rsSend!phone1 数据库中取出的发送号码
'// funPDU 是PDU编码函数
If frmMain.msCom.PortOpen = False Then
MsgBox "设备关闭,不能发送。", vbCritical + vbOKOnly
Exit Sub
End If Dim txtLen As String '定义短信长度
Dim txtCsca As String
txtLen = Len(txtSend.Text) * 2
txtCsca = "+8613800851500"
frmMain.msCom.Output = "AT+CMGF=0" + vbCr'===========群发=====================
Dim i As Integer
If Not rsSend.EOF Then
rsSend.MoveFirst
Do While Not rsSend.EOF
frmMain.msCom.Output = "AT+CMGS=" & Str(15 + txtLen) + vbCr
frmMain.msCom.Output = funPDU(txtCsca, rsSend!phone1, txtSend.Text, txtLen) + Chr$(26)
txtSm.Text = "正在发送:" & Trim(rsSend!name) & "---" & Trim(rsSend!phone1) & Chr(13)
txtSendLogo.Text = frmMain.msCoc.InPut '短信发送状
rsSend.MoveNext
Loop
txtSm.Text = "发送完毕...."
MsgBox "发送成功", vbOKOnly + 48
End If
'===========群发=====================
三、实时接收短信?
实时接收,我想了很久也没想通这个问题。怎么能实现?
比如,在超级终端里接收到如下:+CMTI: "SM",3 我怎样知道我已经收到短信?晕呀???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货