我已经能发英文短信了 如何发送中文短信? 大哥谁告诉我下面代码 那里 怎么修改 谢谢
小弟菜鸟,望前辈修改后 回复完整代码谢谢
Private Sub Command3_Click()
Dim i As Integer
If Trim(Text1.Text) = "" Then
MsgBox "ÐÅÏ¢²»ÄÜΪ¿Õ"
Exit Sub
End If
For i = 0 To List1.ListCount - 1
Sendsms "+8613800100500", List1.List(i), Text1.Text
Next
MsgBox "ÐÅÏ¢·¢Ëͳɹ¦"
End SubPrivate Sub Command4_Click()
End
End SubPrivate Sub Form_Load()
MSComm1.CommPort = 4
MSComm1.Settings = "460800,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub
Private Sub Sendsms(csca As String, num As String, msg As String) '·¢ËÍÐÅÏ¢ Dim pdu, psmsc, pnum, pmsg As String Dim leng As String Dim length As Integer length = Len(msg) length = 2 * length leng = Hex(length) If length < 16 Then leng = 0 & leng psmsc = Trim(telc(csca)) pnum = Trim(telc(num)) pmsg = Trim(chg(msg)) pdu = prex & psmsc & midx & pnum & sufx & leng & pmsg MSComm1.Output = "AT+CMGF=0" + vbCr
MSComm1.Output = "AT+CMGS=" & Str(15 + length) + vbCr MSComm1.Output = pdu & Chr$(26)
End Sub
--------------------------------------------------------------
下面是Module1.bas 中的代码
Option ExplicitPublic Function telc(num As String) As StringDim tl As IntegerDim ltem, rtem, ttem As StringDim ti As Integertl = Len(num)If tl <> 11 And tl <> 13 Then Exit Function
End IfIf tl = 11 Then tl = tl + 2 num = 86 & numEnd IfFor ti = 1 To tl Step 2 ltem = Mid(num, ti, 1) rtem = Mid(num, ti + 1, 1) If ti = tl Then rtem = "F" ttem = ttem & rtem & ltemNext titelc = ttemEnd FunctionPublic Function chg(rmsg As String) As StringDim tep As StringDim temp As StringDim i As IntegerDim b As Integertep = rmsgi = Len(tep)b = i / 4If i = b * 4 Then b = b - 1 tep = Left(tep, b * 4)Else tep = Left(tep, b * 4)End If
For i = 1 To b temp = "H" & Mid(tep, (i - 1) * 4 + 1, 4) chg = chg & ChrW(CInt(Val(temp)))Next iEnd Function
小弟菜鸟,望前辈修改后 回复完整代码谢谢
Private Sub Command3_Click()
Dim i As Integer
If Trim(Text1.Text) = "" Then
MsgBox "ÐÅÏ¢²»ÄÜΪ¿Õ"
Exit Sub
End If
For i = 0 To List1.ListCount - 1
Sendsms "+8613800100500", List1.List(i), Text1.Text
Next
MsgBox "ÐÅÏ¢·¢Ëͳɹ¦"
End SubPrivate Sub Command4_Click()
End
End SubPrivate Sub Form_Load()
MSComm1.CommPort = 4
MSComm1.Settings = "460800,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub
Private Sub Sendsms(csca As String, num As String, msg As String) '·¢ËÍÐÅÏ¢ Dim pdu, psmsc, pnum, pmsg As String Dim leng As String Dim length As Integer length = Len(msg) length = 2 * length leng = Hex(length) If length < 16 Then leng = 0 & leng psmsc = Trim(telc(csca)) pnum = Trim(telc(num)) pmsg = Trim(chg(msg)) pdu = prex & psmsc & midx & pnum & sufx & leng & pmsg MSComm1.Output = "AT+CMGF=0" + vbCr
MSComm1.Output = "AT+CMGS=" & Str(15 + length) + vbCr MSComm1.Output = pdu & Chr$(26)
End Sub
--------------------------------------------------------------
下面是Module1.bas 中的代码
Option ExplicitPublic Function telc(num As String) As StringDim tl As IntegerDim ltem, rtem, ttem As StringDim ti As Integertl = Len(num)If tl <> 11 And tl <> 13 Then Exit Function
End IfIf tl = 11 Then tl = tl + 2 num = 86 & numEnd IfFor ti = 1 To tl Step 2 ltem = Mid(num, ti, 1) rtem = Mid(num, ti + 1, 1) If ti = tl Then rtem = "F" ttem = ttem & rtem & ltemNext titelc = ttemEnd FunctionPublic Function chg(rmsg As String) As StringDim tep As StringDim temp As StringDim i As IntegerDim b As Integertep = rmsgi = Len(tep)b = i / 4If i = b * 4 Then b = b - 1 tep = Left(tep, b * 4)Else tep = Left(tep, b * 4)End If
For i = 1 To b temp = "H" & Mid(tep, (i - 1) * 4 + 1, 4) chg = chg & ChrW(CInt(Val(temp)))Next iEnd Function
马上毕设验机了
MSComm1.CommPort = 4
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
MSComm1.Output = "AT+CMGF=1" + vbCr
MSComm1.Output = "AT+CSCA=" & Chr$(34) & 8613800100500# & Chr$(34) & ",129" + vbCr
MSComm1.Output = "AT+CMGS=" & Chr$(34) & Text1.Text & Chr$(34) & ",129" + vbCr '
MSComm1.Output = Text2.Text & Chr$(26)