⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 手机短心控制接收发射程序,通过串口与手机连接,
💻 FRM
📖 第 1 页 / 共 5 页
字号:
            Load frmPhoneBook
            frmPhoneBook.Caption = "更改联系人"
            frmPhoneBook.labNO = ListViewSel(5)
            frmPhoneBook.txtTel = ListViewSel(4)
            frmPhoneBook.txtName = ListViewSel(3)
            frmPhoneBook.Show 1
        Case 5
            Load frmPhoneBook
            frmPhoneBook.Caption = "删除联系人"
            frmPhoneBook.labNO = ListViewSel(5)
            frmPhoneBook.txtTel = ListViewSel(4)
            frmPhoneBook.txtName = ListViewSel(3)
            frmPhoneBook.Show 1
        Case 7  '保存
            If ListView1.SelectedItem Is Nothing Then Exit Sub
            For i = 1 To ListView1.ListItems.Count
                If ListView1.ListItems(i).Selected = True Then
                    rB = dbPhoneBook("add", ListView1.ListItems.Item(i).SubItems(1), ListView1.ListItems.Item(i).SubItems(2))
                End If
            Next i
            Me.StatusBar1.Panels(3).Text = "电话号码已保存结束!"
            'MsgBox "电话号码已保存结束!", vbOKOnly + vbInformation, "提示"
        Case 1  '发送
            Load frmSent
            frmSent.lstTel.Clear
            If ListView1.SelectedItem Is Nothing Then Exit Sub
            For i = 1 To ListView1.ListItems.Count
                If ListView1.ListItems(i).Selected = True Then
                    frmSent.lstTel.AddItem ListView1.ListItems.Item(i).SubItems(2)
                End If
            Next i
            frmSent.Show 1
    End Select
End Sub


'弹出菜单操作
Private Sub Pmenu_Click(Index As Integer)
On Error Resume Next
Dim smsB As Boolean
    Dim i As Integer
    Me.StatusBar1.Panels(3).Text = ""
    Select Case Index
        Case 5      '显示时间
            comStatue = "ReadX"
            If ListViewSel(0) = "" Then
                MsgBox "请选择要显示时间的短信", vbOKOnly + vbInformation, "提示"
            Else
                If ListView1.SelectedItem Is Nothing Then Exit Sub
                For i = 1 To ListView1.ListItems.Count
                    If ListView1.ListItems(i).Selected = True Then
                        ReadSmsX = Str(i)
                        Call rs232(comStatue, 6, Val(ListView1.ListItems.Item(i).SubItems(4))) '读第X条短信'ListViewSel(0)
                        'Call rs232(comStatue, 6, ValListViewSel(0)) '读第X条短信'ListViewSel(0)
                        PauseWait (400)
                    End If
                Next i
            End If
        Case 2  '显示短信全部内容
            'MsgBox ListViewSel(2), vbOKOnly, "短信内容"
            Load frmSmsInfo
            frmSmsInfo.Text1 = check0D0A(ListViewSel(2))
            frmSmsInfo.Show 1
        Case 1     '回复短信
            Load frmSent
            frmSent.lstTel.Clear
            If ListView1.SelectedItem Is Nothing Then Exit Sub
            For i = 1 To ListView1.ListItems.Count
                If ListView1.ListItems(i).Selected = True Then
                    frmSent.lstTel.AddItem ListView1.ListItems.Item(i).SubItems(2)
                    frmSent.txtSms.Text = ListView1.ListItems.Item(i).SubItems(3)
                End If
            Next i
            frmSent.Show 1
        Case 3     '删除短信
            smsDelB = False
            i = MsgBox("确定要从手机中删除该条短信吗", vbOKCancel + vbExclamation, "提示")
            If i = 1 Then
                comStatue = "DelSms"
                If ListView1.SelectedItem Is Nothing Then Exit Sub
                For i = 1 To ListView1.ListItems.Count
                    If ListView1.ListItems(i).Selected = True Then
                        Call rs232(comStatue, 7, Val(ListView1.ListItems.Item(i).SubItems(4)))        '删除第X条短信
                        PauseWait (100)
                    End If
                Next i
                If smsDelB = False Then
                    Me.StatusBar1.Panels(3).Text = "所选择短信已成功从手机中删除!"
                    'MsgBox "所选择短信已成功从手机中删除!", vbOKOnly + vbInformation, "短信删除"
                End If
            End If
            
        Case 7
            Load frmPhoneBook
            frmPhoneBook.Caption = "保存联系人"
            frmPhoneBook.labNO = ListViewSel(5)
            frmPhoneBook.txtTel = ListViewSel(4)
            frmPhoneBook.txtName = ListViewSel(3)
            frmPhoneBook.Show 1
        Case 8                 '保存短信至数据库
            If ListView1.SelectedItem Is Nothing Then Exit Sub
            For i = 1 To ListView1.ListItems.Count
                If ListView1.ListItems(i).Selected = True Then
                    If comStatue = "RecUnRead" Or comStatue = "RecRead" Or comStatue = "ReadX" Then
                        smsB = smsADD("ReadSms", ReadSms, ListView1.ListItems.Item(i).Text, ListView1.ListItems.Item(i).SubItems(2), ListView1.ListItems.Item(i).SubItems(3))
                    Else
                        smsB = smsADD("SentSms", SentSms, ListView1.ListItems.Item(i).Text, ListView1.ListItems.Item(i).SubItems(2), ListView1.ListItems.Item(i).SubItems(3))
                    End If
                End If
            Next i
            Me.StatusBar1.Panels(3).Text = "短信已保存结束!"
            'MsgBox "短信已保存结束!", vbOKOnly + vbInformation, "提示"
    End Select
End Sub

Private Sub SMS1_Click(Index As Integer)
    Select Case Index
        Case 10
            Call TreeViewNodeClick("接收短信")
        Case 11
            Call TreeViewNodeClick("发送短信")
    End Select
End Sub

'系统菜单
Private Sub Sys_Click(Index As Integer)
    Select Case Index
        Case 1
            Load frmSys
            frmSys.Show 1
        Case 2
            comStatue = "commInit"
            Call rs232(comStatue, 0)
        Case 6
            Unload Me
    End Select
End Sub

'通讯簿菜单
Private Sub pBookC_Click(Index As Integer)
    Select Case Index
        Case 1
            Load frmTelClassify
            frmTelClassify.Show 1
        Case 3
            Call TreeViewNodeClick("所有联系人(M)")
        Case 5
            Call TreeViewNodeClick("所有联系人(D)")
    End Select
End Sub

'短信菜单
Private Sub SMS_Click(Index As Integer)
    Select Case Index
        Case 1      '新建短信
            Load frmSent
            frmSent.Show 1
        Case 2
        Case 4
            Call TreeViewNodeClick("未读短信")
        Case 5
            Call TreeViewNodeClick("已读短信")
        Case 6
            Call TreeViewNodeClick("已发短信")
        Case 7
            Call TreeViewNodeClick("未发短信")
    End Select
End Sub

Private Sub Text1_Change()

End Sub

Private Sub Timer1_Timer()
    comStatue = "Control"
    Call rs232(comStatue, 21)
End Sub

'工具栏操作内容
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Caption
        Case 0
        Case "新建短信"
            Load frmSent
            frmSent.Show 1
        Case "系统设置"
            Load frmSys
            frmSys.Show 1
        Case "连接" '测试
            comStatue = "commInit"
            Call rs232(comStatue, 0)
        Case "远程控制"
            If Button.Value = tbrPressed Then
                Timer1.Enabled = True
                comStatue = "tControl"
                Call rs232(comStatue, 20)
            Else
                Timer1.Enabled = False
                comStatue = "fControl"
                Call rs232(comStatue, 20)
            End If
        Case "通讯类别"
            Load frmTelClassify
            frmTelClassify.Show 1
        Case "常用短信"
        Case "未读短信"
            Call TreeViewNodeClick("未读短信")
        Case "已读短信"
            Call TreeViewNodeClick("已读短信")
        Case "已发短信"
            Call TreeViewNodeClick("已发短信")
        Case "未发短信"
            Call TreeViewNodeClick("未发短信")
        Case "退出"
            Unload Me
    End Select
End Sub

'读手机中的短信
'index为串行控件索引,strAT:AT指令,op读短信具体操作,operate用于msgbox显示内容
Private Sub listViewV(Index As Integer, strAT As String, op As String, operate As String, Optional readX As String)
On Error Resume Next
    Dim itmX As ListItem
    Dim strTmp As String
    Dim sign1 As Integer
    Dim sign2 As Integer
    Dim sign3 As Integer
    Dim i As Integer
    Dim j As Integer
    Do
    sign1 = InStr(1, txtSmsBuffer(Index), strAT)
    If sign1 < 1 Then                               '判断手机中短信内容为空否
        Exit Sub
    End If
    sign2 = InStr(sign1 + 1, txtSmsBuffer(Index), ",")
    If sign2 < 1 Then Exit Sub
    strSms(0) = Mid(txtSmsBuffer(Index), sign1 + 6, sign2 - sign1 - 6)     '取序号
    
    sign1 = InStr(sign2 + 1, txtSmsBuffer(Index), ",")
    If sign1 < 1 Then Exit Sub
    sign2 = InStr(sign1 + 1, txtSmsBuffer(Index), Chr(13))
    If sign2 < 1 Then Exit Sub
    strTmp = Mid(txtSmsBuffer(Index), sign1 + 1, sign2 - sign1 - 1)         '取号码
    
    sign1 = InStr(sign2 + 1, txtSmsBuffer(Index), Right(strAT, 4))
    If sign1 < 1 Then
        sign1 = InStr(sign2 + 1, txtSmsBuffer(Index), "OK")
        If sign1 < 1 Then Exit Sub
    End If
    strSms(2) = Mid(txtSmsBuffer(Index), sign2 + 2, sign1 - sign2 - 4)      '取内容
    txtSmsBuffer(Index) = Right(txtSmsBuffer(Index), Len(txtSmsBuffer(Index)) - sign1 + 5) '去掉已处理的内容
    
    sign1 = InStr(1, strTmp, Chr(34))
    sign2 = InStr(sign1 + 1, strTmp, Chr(34))
    strSms(1) = Mid(strTmp, sign1 + 1, sign2 - sign1 - 1)                   '取精码手机号码
    
'====由于格式不一样,故要分开
'当进行读第X条时,把时间读出后,填入ListView对应的行中
    If op = "ReadX" Then
        ListView1.SetFocus      'readX
        'Set ListView1.SelectedItem = ListView1.ListItems(Val(ListViewSel(1)))
        'ListView1.ListItems.Item(Val(ListViewSel(1))).Text = strSms(1)
        'ListView1.ListItems.Item(Val(ListViewSel(1))).SubItems(3) = chrConvert(strSms(2))
        Set ListView1.SelectedItem = ListView1.ListItems(Val(readX))
        ListView1.ListItems.Item(Val(readX)).Text = strSms(1)
        ListView1.ListItems.Item(Val(readX)).SubItems(3) = chrConvert(strSms(2))
        
    Else
        Set itmX = ListView1.ListItems.Add()
        itmX.Text = " "
        itmX.SubItems(4) = strSms(0)                    '存储位置
        itmX.SubItems(2) = strSms(1)                    '电话号码
        itmX.SubItems(3) = chrConvert(strSms(2))        '短信内容
        itmX.SubItems(1) = findName(strSms(1))          '姓名
    End If
'判断手机中短信内容结束否
    i = InStr(1, txtSmsBuffer(Index), "OK")
    If i > 1 Then
        'MsgBox "[" & operate & "]中短信已接收完!", vbOKOnly + vbInformation, "提示"
        Me.StatusBar1.Panels(3).Text = "[" & operate & "]中短信已接收完!"
    End If
    Loop
End Sub

'comNO为串行控件索引,nValue读短信具体操作,smsNo短信编号
Public Sub rs232(nValue As String, Optional comNO As Integer, Optional smsNo As Integer, Optional pBook As String, Optional telNumber As String, Optional SMS As String)
On Error GoTo Err1:
Dim i As Integer

    For i = 0 To comNum
        txtSmsBuffer(i) = ""
    Next i
    MSComm1.Tag = comNO
    MSComm1.InBufferCount = 0
    MSComm1.OutBufferCount = 0
    If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
    PauseWait (100)
    
    Select Case nValue
        Case "commInit"
            Me.MSComm1.Output = "AT" & vbCr                 '连接测试
            PauseWait (50)
            Me.MSComm1.Output = "ATE0" & vbCr               'ATE是否可见输入字符,1可见,0不可见"
            PauseWait (100)
            Me.MSComm1.Output = "AT+CMGF=1" & vbCr          '选择短消息支持格式(TEXT or PDU)
            PauseWait (100)
            Me.MSComm1.Output = "AT+CSCS=UCS2" & vbCr       '选择支持网络
            PauseWait (100)
            Me.MSComm1.Output = "AT+CPBS=" & Chr(34) & "ME" & Chr(34) & vbCr    '选择不同的记忆体上存储的电话簿
            PauseWait (100)
            Me.MSComm1.Output = "AT+IPR=9600" & vbCr        '设置通信速率
            PauseWait (100)
        'Case "RecAll"
        '    Me.MSComm1.Output = "AT+CMGL=" & Chr(34) & "ALL" & Chr(34) & vbCr         '列出所有已读短信
        Case "StoSent"
            Me.MSComm1.Output = "AT+CMGL=" & Chr(34) & "STO SENT" & Chr(34) & vbCr    '列出所有已发短信
        Case "StoUnSent"
            Me.MSComm1.Output = "AT+CMGL=" & Chr(34) & "STO UNSENT" & Chr(34) & vbCr    '列出所有未发短信
        Case "RecRead"
            Me.MSComm1.Output = "AT+CMGL=" & Chr(34) & "REC READ" & Chr(34) & vbCr    '列出所有已读短信
        Case "RecUnRead"
            Me.MSComm1.Output = "AT+CMGL=" & Chr(34) & "REC UNREAD" & Chr(34) & vbCr    '列出所有未读短信
        Case "ReadX"
            Me.MSComm1.Output = "AT+CMGR=" & smsNo & Chr(13) & Chr(10)            '读短信(第X条)
        Case "DelSms"
            Me.MSComm1.Output = "AT+CMGD=" & Str(smsNo) & vbCr
        Case "rPhoneBook"
            Me.MSComm1.Output = "AT+CPBR=1," & phoneNum & vbCr
        Case "editPhoneBook"
            Me.MSComm1.Output = "AT+CPBW=" & pBook & vbCr
        Case "delPhoneBook"
            Me.MSComm1.Output = "AT+CPBW=" & smsNo & vbCr
        Case "addPhoneBook"
        Case "SaveSms"              '保存短信至手机
            MSComm1.Output = "AT+CMGW=" & Chr$(34) & telNumber & Chr$(34) & vbCr & SMS & Chr$(26)  '存短信于手机中(PDU方式)
        Case "SentSms"
            MSComm1.Output = "AT+CMSS=" & smsNo & vbCr
        Case "品牌"
            Me.MSComm1.Output = "AT+CGMI?" & vbCr
        Case "型号"
            Me.MSComm1.Output = "AT+GMM?" & vbCr
        Case "序列号"
            Me.MSComm1.Output = "AT+CGSN?" & vbCr
        Case "时间"
            Me.MSComm1.Output = "AT+CCLK?" & vbCr
        Case "电量"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -