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

📄 frmmain.frm

📁 监控类的开发
💻 FRM
📖 第 1 页 / 共 4 页
字号:
        MsgBox "请输入对方手机号码!", vbExclamation + vbOKOnly, "提示"
        Exit Sub
    End If
    
    If CheckMb(txtMB.Text) = False Then
        MsgBox "对方手机号码错误!", vbCritical + vbOKOnly, "错误"
        Exit Sub
    End If
    
    If txtSend.Text = "" Then
        MsgBox "请输入短信内容!", vbExclamation + vbOKOnly, "提示"
        Exit Sub
    End If
    
    strCSCA = txtCSCA.Text
    strPDU = GetPDU(strCSCA, txtMB.Text, txtSend.Text)
    If strCSCA = "" Then
        strPDU_Len = Trim(Str((Len(strPDU) / 2 - 1)))
    Else
        strPDU_Len = Trim(Str((Len(strPDU) / 2 - 9)))
    End If
    
    MSComm1.Output = "AT+CMGF=0;+CMGS=" + strPDU_Len + vbCr
    nModemStatus = SMS_SEND0_STATUS
    txtSMSResult.Text = ""
End Sub

Private Sub cmdSet_Click()
    If txtCSCA.Text = "" Then
        MsgBox "请先输入短信中心号码!", vbExclamation + vbOKOnly, "提示"
        Exit Sub
    End If
    
    If CheckMb(txtCSCA.Text) = False Then
        MsgBox "手机号码错误!", vbCritical + vbOKOnly, "错误"
        Exit Sub
    End If
    
    MSComm1.Output = "AT+CSCS=" + Chr(&H22) + "GSM" + Chr(&H22) + ";+CSCA=+86" + txtCSCA.Text + vbCr
End Sub

Private Sub cmdSIMZero_Click()
    DeleteData Adodc1, 1
End Sub

Private Sub cmdSMS_Tip_Click()
    MSComm1.Output = "AT+CNMI=2,1,0,0,1" + vbCr
End Sub

Private Sub cmdTest_Click()
    If txtTest.Text = "" Then
        MsgBox "请先输入命令!", vbExclamation + vbOKOnly, "提示"
        Exit Sub
    End If
    
    txtReply.Text = ""
    MSComm1.Output = txtTest.Text + vbCr
End Sub

Private Sub cmdUnRead_Click()
    MSComm1.Output = "AT+CMGF=1;+CMGL=" + Chr(&H22) + "REC UNREAD" + Chr(&H22) + vbCr
    nModemStatus = CMGL_STATUS
End Sub

Private Sub cmdWriteSim_Click()
    If txtCapacity.Text = "" Then
        MsgBox "请先读取SIM卡的基本信息!", vbExclamation + vbOKOnly, "提示"
        Exit Sub
    End If
    
    With Adodc1.Recordset
        If .RecordCount < 1 Then
            MsgBox "电话簿为空!", vbCritical + vbOKOnly, "提示"
            Exit Sub
        End If
        
        If bWriteSim = False Then
            .MoveFirst
            bWriteSim = True
        End If
            
        If ![Location] > Val(txtCapacity.Text) Then
            MsgBox "电话位置已经超过SIM卡的范围!", vbCritical + vbOKOnly, "错误"
            nModemStatus = OPEN_STATUS
            Exit Sub
        End If
        
        MSComm1.Output = "AT+CSCS=" + Chr(&H22) + "UCS2" + Chr(&H22) + ";+CPBW=" + ts(![Location]) + "," + Chr(&H22) + ![Phone] + Chr(&H22) + _
                          ",129," + Chr(&H22) + StringToUnicodeChars(![Name]) + Chr(&H22) + vbCr
    End With
    
    nModemStatus = WRITE_SIM_STATUS
End Sub

Private Sub cmdZero_Click()
    DeleteData Adodc1, 1
End Sub


Private Sub cmdZeroGroup_Click()
    DeleteData Adodc1, 1
End Sub

Private Sub DG_Book_HeadClick(ByVal ColIndex As Integer)
    With Adodc1
      .RecordSource = "select * from SIM order by [" + _
        .Recordset.Fields(ColIndex).Name + "]"
      .CommandType = adCmdUnknown
      .Refresh
    End With
End Sub

Private Sub DG_SMS_Click()
    With Adodc1.Recordset
        If .EOF Or .BOF Or .RecordCount < 1 Then Exit Sub
        txtSend.Text = ![Content]
    End With
End Sub

Private Sub Form_Load()
    cmbCOM.AddItem "1"
    cmbCOM.AddItem "2"
    cmbCOM.AddItem "3"
    cmbCOM.AddItem "4"
    cmbCOM.ListIndex = 0
    
    cmdClose.Enabled = False
    
    strDataPath = App.Path + "\gsm.mdb"
    If CheckFile(strDataPath) = False Then
        MsgBox "数据库不存在!", vbCritical + vbOKOnly, "错误"
        Exit Sub
    End If
    
    With Adodc1
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _
                             strDataPath + ";Persist Security Info=False"
        .CommandType = adCmdUnknown
    End With
    
    DisplayGroup
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    timer_Comm.Enabled = False
    timer_Status.Enabled = False
End Sub

Private Sub MSComm1_OnComm()
    Dim strTmp As String
    
    If MSComm1.CommEvent <> comEvReceive Then Exit Sub
    
    If bStartNew = False Then
        strInBuffers = ""
        bStartNew = True
    End If
      
    strTmp = MSComm1.Input
    strInBuffers = strInBuffers + strTmp
    
    If bStartNew = True Then
        timer_Comm.Enabled = False
        timer_Comm.Enabled = True
    End If
End Sub

Private Sub Option1_Click(Index As Integer)
    Select Case Index
        Case 0
            cmdGroup.Visible = True
            cmdAdd.Visible = True
            cmdDelGroup.Visible = True
            cmdZeroGroup.Visible = True
            cmdDel.Visible = False
            cmdUnRead.Visible = False
            cmdAll.Visible = False
            cmdZero.Visible = False
            cmdCard.Visible = False
            cmdReadSIM.Visible = False
            cmdWriteSim.Visible = False
            cmdClsSIM.Visible = False
            cmdSIMZero.Visible = False
            cmdNum.Visible = False
            cmdAdjust.Visible = False
            txtCapacity.Visible = False
            txtPhone_Len.Visible = False
            txtName_Len.Visible = False
            
            DisplayGroup
        Case 1
            cmdDel.Visible = True
            cmdUnRead.Visible = True
            cmdAll.Visible = True
            cmdZero.Visible = True
            cmdGroup.Visible = False
            cmdAdd.Visible = False
            cmdDelGroup.Visible = False
            cmdZeroGroup.Visible = False
            cmdCard.Visible = False
            cmdReadSIM.Visible = False
            cmdWriteSim.Visible = False
            cmdClsSIM.Visible = False
            cmdSIMZero.Visible = False
            cmdNum.Visible = False
            cmdAdjust.Visible = False
            txtCapacity.Visible = False
            txtPhone_Len.Visible = False
            txtName_Len.Visible = False
            
            DisplaySMS
        Case 2
            cmdCard.Visible = True
            cmdReadSIM.Visible = True
            cmdWriteSim.Visible = True
            cmdClsSIM.Visible = True
            cmdSIMZero.Visible = True
            cmdNum.Visible = True
            cmdAdjust.Visible = True
            txtCapacity.Visible = True
            txtPhone_Len.Visible = True
            txtName_Len.Visible = True
            cmdGroup.Visible = False
            cmdAdd.Visible = False
            cmdDelGroup.Visible = False
            cmdZeroGroup.Visible = False
            cmdDel.Visible = False
            cmdUnRead.Visible = False
            cmdAll.Visible = False
            cmdZero.Visible = False
            
            DisplayBook
    End Select
End Sub

Private Sub timer_comm_Timer()
    Dim strTmp As String
    
    bStartNew = False
    timer_Comm.Enabled = False
    txtReply.Text = Format(Time, "h:mm:ss || ") + strInBuffers
    
    If nModemStatus = SMS_SEND0_STATUS And InStr(1, strInBuffers, ">") <> 0 Then
        MSComm1.Output = strPDU + Chr(&H1A)
        nModemStatus = SMS_SEND1_STATUS
        Exit Sub
    End If
    
    If nModemStatus = SMS_SEND1_STATUS Then
        If InStr(1, UCase(strInBuffers), "ERROR") <> 0 Then
            txtSMSResult.Text = "失败"
            If bGroup = True Then
                With Adodc1.Recordset
                    ![Remark] = "失败"
                    .Update
                    .MoveNext
                    If .EOF Then
                        .Requery
                        bGroup = False
                        MsgBox "短信群发完毕!", vbInformation + vbOKOnly, "提示"
                    Else
                        cmdGroup_Click
                    End If
                End With
            End If
            GoTo END_MARK
        End If
        
        nModemStatus = SMS_SEND2_STATUS
        Exit Sub
    End If
    
    If nModemStatus = SMS_SEND2_STATUS Then
        With Adodc1.Recordset
            If (InStr(1, strInBuffers, "OK") = 0) And _
                InStr(1, strInBuffers, "ERROR") = 0 Then Exit Sub
            
            If InStr(1, strInBuffers, "OK") <> 0 Then
                txtSMSResult.Text = "成功"
                If bGroup = True Then ![Remark] = "已发"
            End If
            
            If InStr(1, strInBuffers, "ERROR") <> 0 Then
                txtSMSResult.Text = "失败"
                If bGroup = True Then ![Remark] = "失败"
            End If
            
            If bGroup = True Then
                .Update
                .MoveNext
                If .EOF Then
                    .Requery
                    bGroup = False
                    MsgBox "短信群发完毕!", vbInformation + vbOKOnly, "提示"
                Else
                    cmdGroup_Click
                    Exit Sub
                End If
            End If
        End With
    End If
    
    If nModemStatus = CSCA_STATUS Then
        strTmp = NextString(strInBuffers, "CSCA:")
        strTmp = GetNoString(strTmp, Chr(&H22), 1)
        If Mid(strTmp, 1, 3) = "+86" Then strTmp = Mid(strTmp, 4)
        txtCSCA.Text = strTmp
    End If
    
    If nModemStatus = SMS_CARD_STATUS Then
        'AT+CPBS="SM";+CPBR=?+CPBR: (1-200),20,14OK
        If InStr(1, strInBuffers, "CPBR:") <> 0 Then
            strTmp = NextString(strInBuffers, "(")
            strTmp = NextString(strTmp, "-")
            txtCapacity.Text = GetNoString(strTmp, ")", 0)
            strTmp = NextString(strTmp, ",")
            txtPhone_Len.Text = GetNoString(strTmp, ",", 0)
            strTmp = NextString(strTmp, ",")
            txtName_Len = GetNoString(strTmp, vbCrLf, 0)
        End If
    End If
    
    If nModemStatus = CMGL_STATUS Then
        If InStr(1, strInBuffers, "OK") <> 0 Then ProcessCMGL strInBuffers
    End If
    
    If nModemStatus = CMGD_STATUS Then
        If InStr(1, strInBuffers, "OK") <> 0 Then
            With Adodc1.Recordset
                ![Mark] = "删除"
                .Update
            End With
        End If
    End If
    
    If nModemStatus = CPBR_STATUS Then ProcessCPBR strInBuffers
    
    If nModemStatus = WRITE_SIM_STATUS Then
        With Adodc1.Recordset
            .MoveNext
            If .EOF Then
                bWriteSim = False
                MsgBox "写SIM卡完毕!", vbInformation + vbOKOnly, "提示"
            Else
                cmdWriteSim_Click
                Exit Sub
            End If
        End With
    End If
    
    If nModemStatus = CLEAR_SIM_STATUS Then
        If InStr(1, strInBuffers, "OK") <> 0 Then
            nSimNo = nSimNo + 1
            If nSimNo > Val(txtCapacity.Text) Then
                bClearSim = False
                MsgBox "擦除SIM卡完毕!", vbInformation + vbOKOnly, "提示"
            Else
                cmdClsSIM_Click
                Exit Sub
            End If
        End If
    End If
    
END_MARK:
    nModemStatus = OPEN_STATUS
End Sub

Private Sub timer_Status_Timer()
    If MSComm1.PortOpen = True Then
        cmdGet.Enabled = True
        cmdSet.Enabled = True
        cmdSend.Enabled = True
        cmdTest.Enabled = True
        cmdGroup.Enabled = True
        cmdUnRead.Enabled = True
        cmdDel.Enabled = True
        cmdAll.Enabled = True
        cmdReadSIM.Enabled = True
        cmdWriteSim.Enabled = True
        cmdCard.Enabled = True
        cmdClsSIM.Enabled = True
        cmdCallerID.Enabled = True
        cmdSMS_Tip.Enabled = True
    Else
        cmdGet.Enabled = False
        cmdSet.Enabled = False
        cmdSend.Enabled = False
        cmdTest.Enabled = False
        cmdGroup.Enabled = False
        cmdUnRead.Enabled = False
        cmdDel.Enabled = False
        cmdAll.Enabled = False
        cmdReadSIM.Enabled = False
        cmdWriteSim.Enabled = False
        cmdCard.Enabled = False
        cmdClsSIM.Enabled = False
        cmdCallerID.Enabled = False
        cmdSMS_Tip.Enabled = False
    End If
End Sub

Private Sub txtTest_KeyUp(KeyCode As Integer, Shift As Integer)
    If cmdTest.Enabled = True And KeyCode = 13 Then
        cmdTest_Click
        txtTest.Text = ""
    End If
End Sub

⌨️ 快捷键说明

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