PC机向手机发送短信,通过PDU格式发送,代码如下:
private sub sendsms(mnu,msg) as boolean
frmMain.MSComm1.Output = "AT+CMGF=0" + vbCr
frmMain.MSComm1.Output = "AT+CMGS=" & str(15 + length) + vbCr
frmMain.MSComm1.Output = pdu & Chr$(26)Sleep (2000)
reco = frmMain.MSComm1.Input
If InStr(reco, "OK") Then
Sendsms = True
End If
If InStr(reco, "ERROR") Then
Sendsms = False
End If
只要机器注销了或是重起,如果先把猫配置好,再打开程序,就捕捉不到信号,也就是回复RECO的为空,此时如果把猫的电源拔下来再插上就捕捉到了,然后关闭程序再打开就能捕捉到信号,不管打开关闭程序多少次,这是怎么回事?有没有解决办法?补充一下,如果是先打开程序,再把猫配置好,也能捕捉到信号。

解决方案 »

  1.   

    楼主:
    我现在也在做手机短信的收发,你能否帮我看看我的问题怎么解决.
    我使用的是text模式,以下是MSComm控件以及发送控件的程序,但发不出去短信,这是为什么?还需要填加什么语句吗?
    Private Sub MSComm1_OnComm()
    MSComm1.PortOpen = True
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.InputLen = 0
    MSComm1.CommPort = 1
    End SubPrivate Sub Command1_Click()
    Dim I As Integer
            I = 97
            If MSComm1.PortOpen = False Then
                MSComm1.PortOpen = True
             End If
    MSComm1.Output = "AT+CMGF=1" + vbCr
    MSComm1.Output = "AT+CSCA=" & Chr$(34) & "+8613800100500" & Chr$(34) & ",145" + vbCr
    MSComm1.Output = "AT+CMGS=" & Chr$(34) & "XXXXXXXXXXX" & Chr$(34) & ",129" + vbCr
    MSComm1.Output = "XXXX" & Chr$(26)End Sub十分感谢!
      

  2.   

    Private Sub Command1_Click()
        Dim I As Integer
        I = 97
        If MSComm1.PortOpen = False Then
            MSComm1.PortOpen = True
        End If
        MSComm1.Output = "AT+CMGF=1" + vbCr
        MSComm1.Output = "AT+CSCA=" & Chr$(34) & "+8613800100500" & Chr$(34) & ",145" + vbCr
        MSComm1.Output = "AT+CMGS=" & Chr$(34) & "XXXXXXXXXXX" & Chr$(34) & ",129" + vbCr
        MSComm1.Output = "XXXX" & Chr$(26)
    End SubPrivate Sub Form_Load()
        MSComm1.CommPort = 1
        MSComm1.PortOpen = True
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.InputLen = 0
    End Sub
      

  3.   

    adelle5790() 见我已修改代码。
      

  4.   

    zdingyun  我的问题该如何解决?
      

  5.   

    问题已解决,通过命令把猫重置了一下
    AT+CFUN=0
    AT+CFUN=1