Form1.frm
上传用户:bofapump
上传日期:2010-03-19
资源大小:97k
文件大小:26k
源码类别:

Modem编程

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
  3. Object = "{AEECEB18-1629-4D9E-AB2C-C11093920FC6}#1.0#0"; "SuperSMS.ocx"
  4. Begin VB.Form q 
  5.    Caption         =   "Saro-短信测试工具3.0   www.sangrong.com   0592-5932711 5932722"
  6.    ClientHeight    =   6060
  7.    ClientLeft      =   165
  8.    ClientTop       =   555
  9.    ClientWidth     =   9405
  10.    Icon            =   "Form1.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   6060
  13.    ScaleWidth      =   9405
  14.    StartUpPosition =   3  'Windows Default
  15.    Begin SMS.SuperSMS SuperSMS1 
  16.       Left            =   4800
  17.       Top             =   2760
  18.       _ExtentX        =   900
  19.       _ExtentY        =   900
  20.       SMS_SLen        =   "8"
  21.    End
  22.    Begin VB.ComboBox Combo2 
  23.       Height          =   315
  24.       Left            =   6840
  25.       TabIndex        =   30
  26.       Text            =   "COM1"
  27.       Top             =   480
  28.       Width           =   975
  29.    End
  30.    Begin VB.TextBox Text9 
  31.       Height          =   285
  32.       Left            =   720
  33.       TabIndex        =   28
  34.       Text            =   "Text9"
  35.       Top             =   3720
  36.       Visible         =   0   'False
  37.       Width           =   1095
  38.    End
  39.    Begin VB.CommandButton Command12 
  40.       Caption         =   "查看日志"
  41.       Height          =   375
  42.       Left            =   5880
  43.       TabIndex        =   27
  44.       Top             =   960
  45.       Width           =   855
  46.    End
  47.    Begin VB.CheckBox Check1 
  48.       Caption         =   "不经过SIM卡直接接收"
  49.       Height          =   255
  50.       Left            =   2040
  51.       TabIndex        =   26
  52.       Top             =   1080
  53.       Width           =   2055
  54.    End
  55.    Begin VB.ComboBox Combo1 
  56.       Height          =   315
  57.       Left            =   8160
  58.       TabIndex        =   25
  59.       Text            =   "Combo1"
  60.       Top             =   480
  61.       Width           =   1215
  62.    End
  63.    Begin VB.CommandButton Command11 
  64.       Caption         =   "短信位置"
  65.       Height          =   375
  66.       Left            =   3000
  67.       TabIndex        =   23
  68.       Top             =   5520
  69.       Width           =   1095
  70.    End
  71.    Begin VB.CommandButton Command10 
  72.       Caption         =   "查看已发送"
  73.       Height          =   375
  74.       Left            =   6960
  75.       TabIndex        =   22
  76.       Top             =   5640
  77.       Width           =   1095
  78.    End
  79.    Begin VB.CommandButton Command9 
  80.       Caption         =   "接收已读短信"
  81.       Height          =   375
  82.       Left            =   5640
  83.       TabIndex        =   21
  84.       Top             =   5640
  85.       Width           =   1215
  86.    End
  87.    Begin VB.TextBox Text8 
  88.       Height          =   1575
  89.       Left            =   6360
  90.       TabIndex        =   20
  91.       Top             =   1920
  92.       Visible         =   0   'False
  93.       Width           =   1095
  94.    End
  95.    Begin VB.CommandButton Command8 
  96.       Caption         =   "关闭串口"
  97.       Height          =   375
  98.       Left            =   6840
  99.       TabIndex        =   19
  100.       Top             =   960
  101.       Width           =   855
  102.    End
  103.    Begin VB.CommandButton Command7 
  104.       Caption         =   "删除此条:"
  105.       Height          =   375
  106.       Left            =   120
  107.       TabIndex        =   17
  108.       Top             =   5520
  109.       Width           =   1095
  110.    End
  111.    Begin VB.TextBox Text7 
  112.       Height          =   375
  113.       Left            =   1320
  114.       TabIndex        =   16
  115.       Top             =   5520
  116.       Width           =   375
  117.    End
  118.    Begin VB.CommandButton Command6 
  119.       Caption         =   "所有短信"
  120.       Height          =   375
  121.       Left            =   8160
  122.       TabIndex        =   15
  123.       Top             =   5640
  124.       Width           =   1215
  125.    End
  126.    Begin VB.CommandButton Command5 
  127.       Caption         =   "清  空"
  128.       Height          =   375
  129.       Left            =   7800
  130.       TabIndex        =   14
  131.       Top             =   960
  132.       Width           =   735
  133.    End
  134.    Begin VB.TextBox Text6 
  135.       Height          =   285
  136.       Left            =   3120
  137.       TabIndex        =   13
  138.       Top             =   2880
  139.       Visible         =   0   'False
  140.       Width           =   855
  141.    End
  142.    Begin VB.TextBox Text5 
  143.       Height          =   975
  144.       Left            =   120
  145.       MultiLine       =   -1  'True
  146.       ScrollBars      =   2  'Vertical
  147.       TabIndex        =   12
  148.       Top             =   2280
  149.       Visible         =   0   'False
  150.       Width           =   3975
  151.    End
  152.    Begin VB.CommandButton Command4 
  153.       Caption         =   "接收未读短信"
  154.       Height          =   375
  155.       Left            =   4320
  156.       TabIndex        =   11
  157.       Top             =   5640
  158.       Width           =   1215
  159.    End
  160.    Begin VB.CommandButton Command3 
  161.       Caption         =   "退  出"
  162.       Height          =   375
  163.       Left            =   8640
  164.       TabIndex        =   10
  165.       Top             =   960
  166.       Width           =   735
  167.    End
  168.    Begin VB.TextBox Text4 
  169.       Height          =   4095
  170.       Left            =   4320
  171.       Locked          =   -1  'True
  172.       MultiLine       =   -1  'True
  173.       ScrollBars      =   2  'Vertical
  174.       TabIndex        =   8
  175.       Text            =   "Form1.frx":030A
  176.       Top             =   1440
  177.       Width           =   5055
  178.    End
  179.    Begin MSCommLib.MSComm MSComm1 
  180.       Left            =   1680
  181.       Top             =   2280
  182.       _ExtentX        =   1005
  183.       _ExtentY        =   1005
  184.       _Version        =   393216
  185.       DTREnable       =   -1  'True
  186.       InBufferSize    =   30240
  187.       BaudRate        =   57600
  188.       InputMode       =   1
  189.    End
  190.    Begin VB.CommandButton Command2 
  191.       Caption         =   "PDU发送"
  192.       Height          =   375
  193.       Left            =   3000
  194.       TabIndex        =   7
  195.       Top             =   5040
  196.       Width           =   1095
  197.    End
  198.    Begin VB.CommandButton Command1 
  199.       Caption         =   "test发送"
  200.       Height          =   375
  201.       Left            =   120
  202.       TabIndex        =   6
  203.       Top             =   5040
  204.       Width           =   1095
  205.    End
  206.    Begin VB.TextBox Text3 
  207.       Height          =   3495
  208.       Left            =   120
  209.       MultiLine       =   -1  'True
  210.       ScrollBars      =   2  'Vertical
  211.       TabIndex        =   5
  212.       Top             =   1440
  213.       Width           =   3975
  214.    End
  215.    Begin VB.TextBox Text2 
  216.       Height          =   375
  217.       Left            =   120
  218.       TabIndex        =   3
  219.       Text            =   "8613850039334"
  220.       Top             =   480
  221.       Width           =   3975
  222.    End
  223.    Begin VB.TextBox Text1 
  224.       Height          =   375
  225.       Left            =   4320
  226.       TabIndex        =   1
  227.       Text            =   "+8613800592500"
  228.       Top             =   480
  229.       Width           =   2175
  230.    End
  231.    Begin VB.Label Label7 
  232.       Caption         =   "选择串口:"
  233.       Height          =   255
  234.       Left            =   6840
  235.       TabIndex        =   29
  236.       Top             =   120
  237.       Width           =   975
  238.    End
  239.    Begin VB.Line Line1 
  240.       X1              =   0
  241.       X2              =   9360
  242.       Y1              =   900
  243.       Y2              =   900
  244.    End
  245.    Begin VB.Label Label6 
  246.       Caption         =   "选择波特率:"
  247.       Height          =   255
  248.       Left            =   8160
  249.       TabIndex        =   24
  250.       Top             =   120
  251.       Width           =   1095
  252.    End
  253.    Begin VB.Label Label5 
  254.       Caption         =   "(删除前请查  看短信位置)"
  255.       Height          =   375
  256.       Left            =   1680
  257.       TabIndex        =   18
  258.       Top             =   5520
  259.       Width           =   1215
  260.    End
  261.    Begin VB.Label Label4 
  262.       Caption         =   "接收内容:"
  263.       Height          =   255
  264.       Left            =   4320
  265.       TabIndex        =   9
  266.       Top             =   1080
  267.       Width           =   1095
  268.    End
  269.    Begin VB.Label Label3 
  270.       Caption         =   "发送内容:"
  271.       Height          =   255
  272.       Left            =   120
  273.       TabIndex        =   4
  274.       Top             =   1080
  275.       Width           =   1215
  276.    End
  277.    Begin VB.Label Label2 
  278.       Caption         =   "被叫手机号码(若群发,请用"",""分隔开):"
  279.       Height          =   255
  280.       Left            =   120
  281.       TabIndex        =   2
  282.       Top             =   120
  283.       Width           =   4095
  284.    End
  285.    Begin VB.Label Label1 
  286.       Caption         =   "短信中心号码(此项可选):"
  287.       Height          =   255
  288.       Left            =   4320
  289.       TabIndex        =   0
  290.       Top             =   120
  291.       Width           =   2175
  292.    End
  293. End
  294. Attribute VB_Name = "q"
  295. Attribute VB_GlobalNameSpace = False
  296. Attribute VB_Creatable = False
  297. Attribute VB_PredeclaredId = True
  298. Attribute VB_Exposed = False
  299. Option Explicit
  300. Public inData As String '串口中断时读入的字符串
  301. Dim P As String, D As String, T As String, TXT As String, E As Integer
  302. Private Sub Check1_Click()
  303. Dim ttstring As String
  304. CloseOnComm
  305. If Check1.Value Then
  306.   
  307.   Check1.Enabled = False
  308.   
  309.   MSComm1.Output = "at+csms=1" & Chr(13) & Chr(10)
  310.   Sleep (600)
  311.   MSComm1.Output = "at+cnmi=2,2,0,0,1" & Chr(13) & Chr(10)
  312.   Sleep (600)
  313.   MSComm1.Output = "at&w" & Chr(13) & Chr(10)
  314.   Check1.Enabled = True
  315.   Sleep (500)
  316.   ttstring = MSComm1.Input
  317. Else
  318.   Check1.Enabled = False
  319.   MSComm1.Output = "at+cnmi=1,1,0,0,1" & Chr(13) & Chr(10)
  320.   Sleep (600)
  321.   Check1.Enabled = True
  322.   ttstring = MSComm1.Input
  323. End If
  324. OpenOnComm
  325. End Sub
  326. Private Sub Combo1_Click()
  327. If MSComm1.PortOpen = 1 Then
  328. MSComm1.PortOpen = 0
  329. MSComm1.Settings = Combo1.Text + ",n,8,1"
  330. 'If Combo1.Text = "1200" Then MSComm1.Settings = "1200,,,"
  331. MSComm1.PortOpen = 1
  332. Else
  333. MSComm1.Settings = Combo1.Text + ",n,8,1"
  334. 'If Combo1.Text = "1200" Then MSComm1.Settings = "1200,,,"
  335. End If
  336. End Sub
  337. Private Sub combo1_dropdown()
  338. Combo1.Clear
  339. Combo1.AddItem "1200", 0
  340. Combo1.AddItem "2400", 1
  341. Combo1.AddItem "4800", 2
  342. Combo1.AddItem "9600", 3
  343. Combo1.AddItem "19200", 4
  344. Combo1.AddItem "38400", 5
  345. Combo1.AddItem "57600", 6
  346. Combo1.AddItem "115200", 7
  347. End Sub
  348. Private Sub combo2_click()
  349. 'On Error Resume Next
  350. On Error GoTo errorhander
  351. If MSComm1.PortOpen Then MSComm1.PortOpen = False
  352.   Command8.Caption = "打开串口"
  353.  Dim SComm As Integer
  354.  
  355.  SComm = Val(Mid(Combo2.Text, 4, 1))
  356.  MSComm1.CommPort = SComm
  357.  MSComm1.PortOpen = True
  358.  If MSComm1.PortOpen Then Command8.Caption = "关闭串口"
  359.  
  360.  Exit Sub
  361. errorhander:
  362.    MsgBox "当前串口被占用或其他错误,请检查!", vbOKOnly, "串口?"
  363.    Resume Next
  364. End Sub
  365. Private Sub Command10_Click()
  366. CloseOnComm
  367. Dim TxString As String
  368. Dim i As Integer
  369. MSComm1.Output = "at+cmgf=0" & vbCrLf
  370. Sleep (600)
  371. MSComm1.Output = "at+cmgl=3" & Chr(13) & Chr(10)
  372. Sleep (1600)
  373. TxString = MSComm1.Input
  374. Dim atext() As String
  375. 'Text8.SelText = TxString
  376. atext = Split(TxString, Chr(13) & Chr(10))
  377. 'Text8.Text = atext(4)
  378. If Len(atext(4)) < 15 Then
  379.    Text4.SelText = "无已发送信息,请检查!" & vbCrLf
  380. Else
  381.   For i = 2 To (UBound(atext) - 1) / 2 - 1
  382.   Sleep (100)
  383.   Text8.Text = atext(i * 2)
  384.   
  385. SuperSMS1.ConPDU Text8.Text, P, D, T, TXT, 1, E
  386. 'Text4.Text = smsalltext
  387. '获得解析后的数据
  388. Text4.SelText = "电话号码:" & P & vbCrLf _
  389. & "日期:" & D & vbCrLf _
  390. & "时间:" & T & vbCrLf _
  391. & "内容:" & TXT & vbCrLf _
  392. & "错误代码:" & E & vbCrLf
  393. 'Text4.SelText = TxString
  394. Next i
  395. End If
  396. OpenOnComm
  397. End Sub
  398. Private Sub Command11_Click()
  399. CloseOnComm
  400. Dim TxString As String
  401. MSComm1.Output = "at+cmgf=0" & vbCrLf
  402. Sleep (600)
  403. MSComm1.Output = "at+cmgl=4" & Chr(13) & Chr(10)
  404. Sleep (600)
  405. TxString = MSComm1.Input
  406. Text4.SelText = TxString
  407. OpenOnComm
  408. End Sub
  409. Private Sub Command2_Click()
  410. On Local Error Resume Next
  411. Command1.Enabled = False
  412. Command2.Enabled = False
  413. Command7.Enabled = False
  414. Command11.Enabled = False
  415. Command4.Enabled = False
  416. Command9.Enabled = False
  417. Command6.Enabled = False
  418. Command10.Enabled = False
  419. CloseOnComm
  420. Dim SInput As String
  421. Dim a As String
  422. Dim atext() As String
  423. Dim i As Integer
  424. atext = Split(Text2.Text, ",")
  425. 'Dim s
  426. If Text1.Text <> "" Then
  427.   MSComm1.Output = "at+csca=""" & Text1.Text & """" & Chr(13) & Chr(10)
  428.   Sleep (800)
  429.   SInput = MSComm1.Input
  430.   If InStr(SInput, "OK") = 0 Then
  431.     MsgBox "短信中心设置失败,请重新设置!", vbOKOnly, "发送结果"
  432.     OpenOnComm
  433.     Exit Sub
  434.   End If
  435.   
  436. End If
  437. 'Delay 1
  438. MSComm1.Output = "at+cmgf=0" & Chr(13) & Chr(10)
  439. Sleep (800)
  440. 'If MSComm1.Input = Chr(13) & Chr(13) & Chr(10) & Chr(79) & Chr(75) & Chr(13) & Chr(10) Then
  441.    a = MSComm1.Input
  442.    If InStr(a, "OK") <> 0 Then
  443.    
  444.     For i = 0 To UBound(atext)
  445.       Text9.Text = atext(i)
  446.       Conv
  447.       MSComm1.Output = "at+cmgs=" & Text6.Text & Chr(13) & Chr(10)
  448.       Delay 3
  449.       MSComm1.Output = Text5.Text & Chr(26)
  450.       Delay 4
  451.       Dim SInputT
  452.       SInputT = MSComm1.Input
  453.       If InStr(SInputT, "+CMGS") <> 0 Then
  454.             Text4.SelText = "发送给" & atext(i) & "成功!" & vbCrLf
  455.       Else
  456.             Text4.SelText = "发送给" & atext(i) & "失败,请检查!" & vbCrLf
  457.       End If
  458.       Sleep (100)
  459.     Next i
  460.         Text4.SelText = "发送完毕!" & vbCrLf
  461.    Else
  462.       MsgBox "短信模式配置错误,请重新配置!", vbOKOnly, "发送结果"
  463.    End If
  464. OpenOnComm
  465. Command1.Enabled = True
  466. Command2.Enabled = True
  467. Command7.Enabled = True
  468. Command11.Enabled = True
  469. Command4.Enabled = True
  470. Command9.Enabled = True
  471. Command6.Enabled = True
  472. Command10.Enabled = True
  473. End Sub
  474. Private Sub Command3_Click()
  475. Unload Me
  476. End Sub
  477. Private Sub Command4_Click()
  478. 'Dim TxInput(1 To 65534) As Byte
  479. CloseOnComm
  480. Dim TxString As String
  481. Dim i As Integer
  482. MSComm1.Output = "at+cmgf=0" & vbCrLf
  483. Sleep (600)
  484. MSComm1.Output = "at+cmgl=0" & Chr(13) & Chr(10)
  485. Sleep (1600)
  486. TxString = MSComm1.Input
  487. Dim atext() As String
  488. 'Text8.SelText = TxString
  489. atext = Split(TxString, Chr(13) & Chr(10))
  490. 'Text8.Text = atext(4)
  491. If Len(atext(4)) < 15 Then
  492.    Text4.SelText = "无未读新信息,请等待!" & vbCrLf
  493. Else
  494.   For i = 2 To (UBound(atext) - 1) / 2 - 1
  495.   Sleep (100)
  496.   Text8.Text = atext(i * 2)
  497.   
  498. SuperSMS1.ConPDU Text8.Text, P, D, T, TXT, 1, E
  499. 'Text4.Text = smsalltext
  500. '获得解析后的数据
  501. Text4.SelText = "电话号码:" & P & vbCrLf _
  502. & "日期:" & D & vbCrLf _
  503. & "时间:" & T & vbCrLf _
  504. & "内容:" & TXT & vbCrLf _
  505. & "错误代码:" & E & vbCrLf
  506. 'Text4.SelText = TxString
  507. Next i
  508. End If
  509. OpenOnComm
  510. End Sub
  511. Private Sub Command6_Click()
  512. CloseOnComm
  513. MSComm1.Output = "at+cmgf=0" & Chr(13) & Chr(10)
  514. Sleep (600)
  515. MSComm1.Output = "at+cmgl=4" & Chr(13) & Chr(10)
  516. Sleep (3800)
  517. Dim smsalltext As String
  518. smsalltext = MSComm1.Input
  519. Dim atext() As String
  520. Dim i As Integer
  521. atext = Split(smsalltext, Chr(13) & Chr(10))
  522. Dim j As Integer
  523. If Len(atext(4)) < 15 Then
  524.   Text4.SelText = "内存为空,无短信" & vbCrLf
  525. Else
  526. For j = 2 To (UBound(atext) - 1) / 2 - 1
  527.  Sleep (100)
  528. Text8.Text = atext(j * 2)
  529. SuperSMS1.ConPDU Text8.Text, P, D, T, TXT, 1, E
  530. 'Text4.Text = smsalltext
  531. '获得解析后的数据
  532. Text4.SelText = "电话号码:" & P & vbCrLf _
  533. & "日期:" & D & vbCrLf _
  534. & "时间:" & T & vbCrLf _
  535. & "内容:" & TXT & vbCrLf _
  536. & "错误代码:" & E & vbCrLf
  537. Next j
  538. End If
  539. OpenOnComm
  540. End Sub
  541. Sub Conv()
  542. SuperSMS1.SMS_Phone = Text9.Text
  543. SuperSMS1.SMS_CSCA = Text1.Text
  544. SuperSMS1.SMS_STXT = Text3.Text
  545. Text5.Text = SuperSMS1.SMS_SMain
  546. 'Text8.Text = SuperSMS1.ANSIText(Text7.Text)
  547. Text6.Text = SuperSMS1.SMS_SLen
  548. End Sub
  549. Private Sub Command5_Click()
  550. Text4.Text = ""
  551. End Sub
  552. Private Sub Command7_Click()
  553. CloseOnComm
  554. MSComm1.Output = "at+cmgd=" & Text7.Text & vbCrLf
  555. Dim deltext As String
  556. Delay 1
  557. deltext = MSComm1.Input
  558. If InStr(deltext, "OK") <> 0 Then
  559.    Text4.SelText = "删除短信" & Text7.Text & "成功" & vbCrLf
  560.    deltext = ""
  561. Else
  562.    Text4.SelText = "删除短信" & Text7.Text & "失败,请重新检查" & vbCrLf
  563.     deltext = ""
  564. End If
  565. OpenOnComm
  566. End Sub
  567. Private Sub combo2_dropdown()
  568. Dim SCom As Integer
  569.   Dim hKey As Long, ret As Long, lenData As Long, typeData As Long
  570.     Dim Name As String, lenName As Long
  571.     Dim idx As Integer, j As Integer
  572.     Dim SSCom(0 To 50) As String
  573.     ret = RegOpenKey(HKEY_LOCAL_MACHINE, "HARDWAREDEVICEMAPSERIALCOMM", hKey)
  574.    ' If ret <> 0 Then Exit Sub
  575.    ' SCom = ret
  576.     ret = 0
  577.     idx = 0
  578.     Dim s As String
  579.     Dim SArr() As String
  580.     
  581.     
  582.     While ret = 0
  583.         lenName = 256
  584.         Name = String(256, Chr(0))
  585.         ret = RegEnumValueAsAny(hKey, idx, Name, lenName, ByVal 0, typeData, _
  586.                                 ByVal vbNullString, lenData)
  587.         If ret <> 0 Then
  588.             RegCloseKey hKey
  589.           '  Exit Sub
  590.         End If
  591.         
  592.         lenName = Len(Name)
  593.     
  594.         s = String(lenData, Chr(0))
  595.         RegEnumValueAsAny hKey, idx, Name, lenName, ByVal 0, typeData, ByVal s, lenData
  596.         s = Left(s, InStr(s, Chr(0)) - 1)
  597.         'Debug.Print s
  598.       
  599.       '  Text1.SelText = s
  600.         SSCom(idx) = s
  601.         DoEvents
  602.         
  603.         idx = idx + 1
  604.         SCom = idx
  605.     Wend
  606.     RegCloseKey hKey
  607.     
  608. Combo2.Clear
  609. Dim i As Integer
  610. For i = 0 To SCom - 2
  611. Combo2.AddItem SSCom(i), i
  612. 'Combo7.AddItem "com2", 1
  613. Next
  614. End Sub
  615. Private Sub Command8_Click()
  616. 'On Error Resume Next
  617. CloseOnComm
  618. If InStr(Command8.Caption, "关闭串口") <> 0 Then
  619.    MSComm1.PortOpen = False
  620.    Command8.Caption = "打开串口"
  621.    Command7.Enabled = False
  622.    Command6.Enabled = False
  623.    Command4.Enabled = False
  624.    Command1.Enabled = False
  625.    Command9.Enabled = False
  626.    Command10.Enabled = False
  627.    Command2.Enabled = False
  628.    Command11.Enabled = False
  629.    Label5.Enabled = False
  630.    
  631.  Else
  632.  
  633.   MSComm1.PortOpen = 1
  634.   Command8.Caption = "关闭串口"
  635. '  If flag2 = True Then
  636.  MSComm1.Output = "at" & vbCrLf
  637. Dim attext
  638. Sleep (800)
  639. attext = MSComm1.Input
  640. If InStr(attext, "OK") <> 0 Then
  641.   Command2.Enabled = True
  642.     Command7.Enabled = True
  643.    Command6.Enabled = True
  644.    Command4.Enabled = True
  645.    Command1.Enabled = True
  646.    Command9.Enabled = True
  647.    Command10.Enabled = True
  648.    Command11.Enabled = True
  649.    Label5.Enabled = True
  650.    Text4.SelText = "设备已经连接!" & vbCrLf
  651.    
  652.   Else
  653.    Text4.SelText = "串口无反应,请检查!" & vbCrLf
  654.   
  655.  End If
  656. End If
  657. OpenOnComm
  658. End Sub
  659. Private Sub Command9_Click()
  660. CloseOnComm
  661. Dim TxString As String
  662. Dim i As Integer
  663. MSComm1.Output = "at+cmgf=0" & vbCrLf
  664. Sleep (600)
  665. MSComm1.Output = "at+cmgl=1" & Chr(13) & Chr(10)
  666. Sleep (3600)
  667. TxString = MSComm1.Input
  668. Dim atext() As String
  669. 'Text8.SelText = TxString
  670. atext = Split(TxString, Chr(13) & Chr(10))
  671. 'Text8.Text = atext(4)
  672. If Len(atext(4)) < 15 Then
  673.    Text4.SelText = "无已读信息,请检查!" & vbCrLf
  674. Else
  675.   For i = 2 To (UBound(atext) - 1) / 2 - 1
  676.  Sleep (100)
  677.   Text8.Text = atext(i * 2)
  678.   
  679. SuperSMS1.ConPDU Text8.Text, P, D, T, TXT, 1, E
  680. 'Text4.Text = smsalltext
  681. '获得解析后的数据
  682. Text4.SelText = "电话号码:" & P & vbCrLf _
  683. & "日期:" & D & vbCrLf _
  684. & "时间:" & T & vbCrLf _
  685. & "内容:" & TXT & vbCrLf _
  686. & "错误代码:" & E & vbCrLf
  687. 'Text4.SelText = TxString
  688. Next i
  689. End If
  690. OpenOnComm
  691. End Sub
  692. Private Sub Text4_KeyPress(KeyAscii As Integer)
  693. On Error Resume Next
  694. MSComm1.Output = Chr(KeyAscii)
  695. End Sub
  696. Private Sub Form_Load()
  697.     On Error Resume Next
  698.    MSComm1.PortOpen = False
  699.     MSComm1.CommPort = 1
  700.     MSComm1.InputMode = comInputModeText
  701.      MSComm1.Settings = "57600,N,8,1"
  702.      'MSComm1.InBufferCount = 1
  703.      MSComm1.InBufferSize = 30240
  704.     MSComm1.InputLen = 0    '设置每次从串口缓冲区取的字节为全部
  705.     MSComm1.PortOpen = True '打开串口
  706.     Command8.Caption = "关闭串口"
  707.     'Command8.Value = 0
  708.     Combo1.Text = "57600"
  709.     'CloseOnComm
  710.     MSComm1.Output = "at" & Chr(13) & Chr(10)
  711.     Sleep (800)
  712.     'Text4.Text = StrConv (MSComm1.Input, vbUnicode)
  713.     Dim aafirst As String
  714.     aafirst = MSComm1.Input
  715.     If InStr(aafirst, "OK") = 0 Then
  716.     MsgBox ("AT不通,请检查mode是否连接成功!")
  717.     'Command8.Caption = "打开串口"
  718.     Command1.Enabled = 0
  719.     Command4.Enabled = 0
  720.     Command6.Enabled = 0
  721.     Command7.Enabled = 0
  722.     Command9.Enabled = 0
  723.     Command10.Enabled = 0
  724.      Command2.Enabled = 0
  725.      Command11.Enabled = 0
  726.      Label5.Enabled = 0
  727.     Else
  728.     aafirst = ""
  729.     Text4.SelText = "设备已经连接成功,请测试!" & vbCrLf
  730.     
  731.    ' Command8.Caption = "关闭串口"
  732.       Command1.Enabled = 1
  733.     Command4.Enabled = 1
  734.     Command6.Enabled = 1
  735.     Command7.Enabled = 1
  736.     Command2.Enabled = 1
  737.     Command9.Enabled = 1
  738.     Command10.Enabled = 1
  739.     Command11.Enabled = 1
  740.     Label5.Enabled = 1
  741.     MSComm1.Output = "at+cnmi=1,1,0,0,1" & vbCrLf
  742.     End If
  743.     Delay 1
  744.     aafirst = MSComm1.Input
  745.     'inData = ""
  746.    OpenOnComm
  747. Open "DataLink.txt" For Append As #1
  748.   
  749. Close #1
  750. End Sub
  751. Private Sub Command1_Click()
  752. On Local Error Resume Next
  753. Command1.Enabled = False
  754. Command2.Enabled = False
  755. Command7.Enabled = False
  756. Command11.Enabled = False
  757. Command4.Enabled = False
  758. Command9.Enabled = False
  759. Command6.Enabled = False
  760. Command10.Enabled = False
  761.  CloseOnComm
  762.  Dim stt1 'As String
  763.  
  764.  Dim atext() As String
  765. Dim i As Integer
  766. atext = Split(Text2.Text, ",")
  767. 'For i = 0 To UBound(atext)
  768.  If Text1.Text <> "" Then
  769.     MSComm1.Output = "at+csca=""" & Text1.Text & """" & Chr(13)
  770.     Delay 2
  771.     stt1 = MSComm1.Input
  772.     If InStr(stt1, "OK") = 0 Then
  773.      
  774.        MsgBox "短信中心号码设置不成功,请检查!", vbOKOnly, "发送结果"
  775.        Exit Sub
  776.     End If
  777.  End If
  778.  Delay 1
  779.  MSComm1.Output = "at+cmgf=1" & Chr(13)
  780.  Sleep (600)  'wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
  781.  Dim att 'As String
  782.     att = MSComm1.Input
  783.    ' Text4.Text = StrConv(att, vbUnicode)
  784.     If InStr(att, "OK") <> 0 Then
  785.        For i = 0 To UBound(atext)
  786.          MSComm1.Output = "at+cmgs=""" & atext(i) & """" & Chr(13)
  787.          Delay 2
  788.          MSComm1.Output = Text3.Text & Chr(26)
  789.          Sleep (3200)
  790.     
  791.          Dim stt 'As String
  792.          stt = MSComm1.Input
  793.          If InStr(stt, "+CMGS") <> 0 Then
  794.             Text4.SelText = "发送给" & atext(i) & "成功!" & vbCrLf
  795.          Else
  796.             Text4.SelText = "发送给" & atext(i) & "失败,请检查!" & vbCrLf
  797.          End If
  798.          Sleep (100)
  799.         Next i
  800.         Text4.SelText = "发送完毕!" & vbCrLf
  801.     Else
  802.         MsgBox "短信模式设置不成功,请检查!", vbOKOnly, "发送结果"
  803.     End If
  804. Command1.Enabled = True
  805. Command2.Enabled = True
  806. Command7.Enabled = True
  807. Command11.Enabled = True
  808. Command4.Enabled = True
  809. Command9.Enabled = True
  810. Command6.Enabled = True
  811. Command10.Enabled = True
  812.  OpenOnComm
  813. End Sub
  814. Public Sub CloseOnComm()
  815. MSComm1.RThreshold = 0
  816. MSComm1.InputMode = comInputModeText
  817. End Sub
  818. Public Sub OpenOnComm()
  819. MSComm1.RThreshold = 1
  820. MSComm1.InputMode = comInputModeBinary
  821. End Sub
  822. Public Sub Delay(HowLong As Date)   '延时
  823.    Dim temptime As Date
  824.    temptime = DateAdd("s", HowLong, Now)
  825.     While temptime > Now
  826.         DoEvents '让 windows 去处理其他事
  827.     Wend
  828. End Sub
  829. Private Sub Text1_Change()
  830. Conv
  831. End Sub
  832. Private Sub Text2_Change()
  833. Conv
  834. End Sub
  835. Private Sub Text3_Change()
  836. Conv
  837. End Sub
  838. Private Sub MSComm1_OnComm() '串口中断
  839. On Error Resume Next
  840. Static bFlag As Boolean
  841. Static Xbyte As Long
  842. Select Case MSComm1.CommEvent   '选择事件
  843. Case comEvReceive '接收到字符
  844.      
  845.         Dim InByte() As Byte '定义一个二进制指针放接收到的数据
  846.         InByte = MSComm1.Input '数据转移到指针
  847.         Dim temp As Long
  848.         Dim temp1 As Long
  849.         Dim temp2 As Long
  850.         Dim j As Long
  851.         Dim counttrue As Integer
  852.         counttrue = 1
  853.        
  854.         
  855.          For j = 0 To UBound(InByte) '循环到指针上标
  856.           ''  If ifhex = 1 Then '16进制显示处理
  857.         '  inData = inData & Hex(InByte(j)) & " " '取出一个字节换为16进制显示用
  858.            ' Else:
  859.                   If InByte(j) < 128 And bFlag = 0 Then
  860.                     If InByte(j) = 13 Then
  861.                     inData = inData & vbCr 'Lf
  862.                     Else
  863.                     inData = inData & Chr(InByte(j)) 'ascii码显示处理
  864.                     
  865.                     End If
  866.                   Else '此时为一个中文的前半部
  867.                      If bFlag Then '上次收到半个中文没处理
  868.                      temp1 = Xbyte
  869.                      temp2 = InByte(j)
  870.                      temp = (temp1 * 256 + temp2) - 65536
  871.                      inData = inData & Chr(temp)
  872.                      bFlag = 0
  873.                      Else
  874.                         If j <> UBound(InByte) Then
  875.                         temp1 = InByte(j)
  876.                         temp2 = InByte(j + 1)
  877.                         temp = (temp1 * 256 + temp2) - 65536
  878.                         inData = inData & Chr(temp) ' & "(*" & temp & "*) "
  879.                         j = j + 1 '此次中断收到最后一个字节是前半个中文
  880.                         Else
  881.                         
  882.                         Xbyte = InByte(j) '保存该字节
  883.                         bFlag = 1 '置标志
  884.                         
  885.                         End If
  886.                      End If
  887.                  ' End If
  888.             End If
  889.          
  890.         ' counttrue = 1
  891.         
  892.     Next j
  893.  DoEvents
  894.    ' Delay 1
  895.  ' flag2 = False
  896.   If InStr(inData, "+CMTI:") <> 0 And counttrue = 1 Then
  897.         
  898.             Text4.SelText = "新短信,请接收!" & vbCrLf
  899.            ' Delay 1
  900.             counttrue = counttrue + 1
  901.  End If
  902. If Check1.Value And InStr(inData, "+CMT:") <> 0 Then
  903.  CloseOnComm
  904.  Delay 1
  905.  inData = MSComm1.Input
  906.  Dim atext() As String
  907.  atext = Split(inData, Chr(13) & Chr(10))
  908.  Text8.Text = atext(1)
  909.  SuperSMS1.ConPDU Text8.Text, P, D, T, TXT, 1, E
  910. 'Text4.Text = smsalltext
  911. '获得解析后的数据
  912. Text4.SelText = "电话号码:" & P & vbCrLf _
  913. & "日期:" & D & vbCrLf _
  914. & "时间:" & T & vbCrLf _
  915. & "内容:" & TXT & vbCrLf _
  916. & "错误代码:" & E & vbCrLf
  917. '保存到TEXT文档
  918. Text8.Text = "电话号码:" & P & vbCrLf _
  919. & "日期:" & D & vbCrLf _
  920. & "时间:" & T & vbCrLf _
  921. & "内容:" & TXT & vbCrLf _
  922. & "错误代码:" & E & vbCrLf
  923. Open "DataLink.txt" For Append As #1
  924.    Print #1, Text8.Text
  925. Close #1
  926. Sleep (400)
  927. MSComm1.Output = "at+cnma" & Chr(13) & Chr(10)
  928. Sleep (600)
  929.   inData = MSComm1.Input
  930.  If InStr(inData, "OK") = 0 Then
  931.     MSComm1.Output = "at+cnma" & Chr(13) & Chr(10)
  932.     Sleep (400)
  933.     inData = MSComm1.Input
  934.  End If
  935.   OpenOnComm
  936.   
  937.   
  938. End If
  939.  
  940.   Text4.SelText = inData '将刚收到的字符串显示出来
  941.     inData = ""
  942.   Text4.SelStart = Len(Text4.Text) '光标置后
  943.     
  944. Case comEventRxOver '接收缓冲区满的处理
  945. MsgBox "接收缓冲区满了!" '发出警告
  946. End Select
  947. End Sub