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

📄 来电显示.frm

📁 最简来电显示源代码,有注释,直接查出连接modem的串口
💻 FRM
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1 
   ClientHeight    =   3105
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   2940
   LinkTopic       =   "Form1"
   ScaleHeight     =   3105
   ScaleWidth      =   2940
   StartUpPosition =   3  '窗口缺省
   Begin MSCommLib.MSComm MSComm1 
      Left            =   0
      Top             =   0
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   -1  'True
   End
   Begin VB.TextBox Text2 
      Height          =   375
      Left            =   120
      TabIndex        =   1
      Top             =   2520
      Width           =   2655
   End
   Begin VB.Timer Timer1 
      Interval        =   60
      Left            =   6960
      Top             =   2400
   End
   Begin VB.TextBox Text1 
      Height          =   2295
      Left            =   120
      MultiLine       =   -1  'True
      TabIndex        =   0
      Top             =   120
      Width           =   2655
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Public COMBUF, COMLIN As String
Private Sub Form_Load()
      call  Init_CallID()
End Sub
'****************************************************
Private Function Init_CallID() As String
'返回所有可用串行口
    Dim C As Integer,L As Integer
    Dim T As Single
    On Error GoTo NotCOM
    '检测可用串口
    For C = 1 To 6
        If MSComm1.PortOpen Then MSComm1.PortOpen = False
        MSComm1.CommPort = C
        If Not MSComm1.PortOpen Then MSComm1.PortOpen = True'没串口时出错并跳到NOTCOM标号
        MSComm1.Output = "AT#CID=1" + vbCr                  '打开MODEM的
        T = Timer
        Do
           COMBUF = COMBUF + MSComm1.Input
           L = InStr(1, COMBUF, "OK")
           if L<>0 them
              MSComm1.Output = "ATS0=0" + vbCr
              Exit Function       'GOTO NotCOM 用于初始化所有串口的MODEM,
           end if
        Loop Until  Timer - T > 1
NotCOM:
    Next C
    If C = 4 Then MsgBox "没有可用串口!"
    if L = 0 then msgbox "没有MODEM或MODEM不支持来电显示!"
End Function
Private Function INIT_MODEM(ByVal COMNUM As Long) As Long
'MODEM是否联接指定串口
    Dim T As Single
    Dim L As Integer
    INIT_MODEM = 0
    If MSComm1.PortOpen Then MSComm1.PortOpen = False
    MSComm1.CommPort = COMNUM
    If Not MSComm1.PortOpen Then MSComm1.PortOpen = True
    MSComm1.Output = "AT#CID=1" + vbCr
    T = Timer
    Do
        COMBUF = COMBUF + MSComm1.Input
        L = InStr(1, COMBUF, "OK")
    Loop Until L <> 0 Or Timer - T > 1

    If L <> 0 Then
        INIT_MODEM = 1
    Else
        Exit Function
    End If
    MSComm1.Output = "ATS0=0" + vbCr
End Function
   
Private Sub MSComm1_OnComm()
'串行口接收事件处理
    Dim CH, ST As String
    Dim LC As Integer
    Select Case MSComm1.CommEvent
    '接收到Rthreshold个字符
    Case comEvReceive
        COMBUF = COMBUF + MSComm1.Input
        '读取串口数据
        Do
            LC = InStr(1, COMBUF, Chr(10))
            If LC = 0 Then Exit Do
            COMLIN = Left(COMBUF, LC)
            COMBUF = Mid(COMBUF, LC + 1)
            CH = Left(COMLIN, 1)
            If "" < CH And CH < Chr(127) And DEBFLG = 1 Then
                Text1.Text = Text1.Text + COMLIN
                Text1.SelStart = Len(Text1.Text)
            End If
            '截取来电号码,并显示
            If InStr(1, COMLIN, "NMBR = ") <> 0 Then
                ST = Mid(COMLIN, 8)
                Text2.Text = "" + Left$(ST, Len(ST) - 2) + " "
            End If
        Loop
    End Select
End Sub

⌨️ 快捷键说明

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