📄 frmmain.frm
字号:
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 + -