来电显示的实现
MODEM的AT命令CID和VCID是设置是不是来电显示的,如果电信开通了来电显示功能
就能通过MODEM来显示对方的电话号码。那么首先设置CID=1或是VCID=1

般来说来电显示的信息为:
DATE = MMDD "来电日期 MMDD
TIME = HHMM "来电时间 HHMM
NMBR = ######## "来电号码
程序实现如下,设置MSComm1的相关设置,并建两个Label为Label1和Label2
FunCTion OpenCID(OpenCLose As Boolean) As Boolean
'打开或是关毕来电显示功能
    On Error Resume Next
    Dim ArrCID(1) As String
    ArrCID(0) = "at#cid=" & IIf(openclode, 1, 0)
    ArrCID(1) = "at#vcid=" & IIf(openclode, 1, 0)
    MSComm1.RThreshold = 0
    For i = 0 To 1
        MSComm1.Output = ArrCID(i) & vbCr
        EndTime = Timer + 0.5
        Do While bStop = False
            nTemp = nTemp + 1
            If MSComm1.InBufferCount >= 2 Then
                sTemp = MSComm1.Input
                If InStr(sTemp, "OK") = 0 Then
                    bStop = True
                    OpenCID = True
                    Exit Function
                End If
            End If
            If Timer >= EndTime Or ErrorCode Then Exit Do
        Loop
    Next i
    OpenCID = False
    MSComm1.RThreshold = 1
End Function
下面的函数显示来电号码并在窗体上的Label1的Label2上显示出来
Private Sub MSComm1_OnComm()
    On Error Resume Next
    Static Buffer As String
     ' 收到多于 RThreshold 属性设置的字符数(RThreshold 属性必须大于 0)。
            'label1 = "收到" + Str(MSComm1.InBufferCount) + "个字符"
            Buffer = Buffer + MSComm1.Input
            Buffer = UCase(Buffer)

'   Exit Sub
            If InStr(1, Buffer, "RING", vbTextCompare) Then
            '收到震铃
                'Comm1.Output = "ATA" + Chr(13) '命令 Modem 摘机响应
                Buffer = "" '清缓冲区字符
                'mciExecute "sound " & SystemPath & "/ringin.wav"
                Label1 = "状态:收到震铃"
                Zhen = True
                frmCallID.Show
                frmCallID.ChangRing
             
               
            ElseIf InStr(1, Buffer, "CONNECT", vbTextCompare) Then
            '对方应答呼叫
                Buffer = "" '清缓冲区字符
                Label1 = "状态:已经建立连接"
            ElseIf InStr(1, Buffer, "BUSY", vbTextCompare) Then
            '对方线路忙
                Buffer = "" '清缓冲区字符
                Label1 = "状态:对方线路忙"
            ElseIf InStr(1, Buffer, "No DIA", vbTextCompare) Then
                Buffer = "" '清缓冲区字符
                Label1 = "状态:拨出号码错,请检查电话线"
                Command1_Click
            ElseIf InStr(1, Buffer, "No CARRIER", vbTextCompare) Then
            '对方未摘机或未响应
                Buffer = "" '清缓冲区字符
                Label1 = "状态:对方未摘机"
          
            ElseIf InStr(1, Buffer, "NMBR =", vbTextCompare) Then
             tmpStr = InStr(1, Buffer, "NMBR", vbTextCompare)
             CallNum = Right(Buffer, Len(Buffer) - lll - 6)
             Label2.Caption = "对方电话:" + CallNum

'Buffer = "" '清缓冲区字符
            ElseIf InStr(1, Buffer, "OK", vbTextCompare) And Asc(Right(Buffer, 1)) = 10 Then
              If Zhen = False Then Buffer = "" '清缓冲区字符
             If Command1.Caption = "挂断" Then
              Label2.Caption = "状态:已经播通电话:" + txtCallNum
            End If
            End If
End Sub

用MSComm控件实现来电显示相关推荐

  1. 来电显示软件测试自学,用MSComm控件实现来电显示

    来电显示的实现 MODEM的AT命令CID和VCID是设置是不是来电显示的,如果 般来说来电显示的信息为: DATE = MMDD "来电日期 MMDD TIME = HHMM " ...

  2. 利用MSCOMM控件通过串口MODEN实现来电显示-c# source code

    利用MSCOMM控件通过串口MODEN实现来电显示-c# source code 注:此代码都已调试通过 处理方式 MSComm控件提供了两种处理通信的方式:一种为事件驱动方式,该方式相当于一般程序设 ...

  3. 怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时惠存txt文件中

    怎样把vc6的MSComm控件接受的数据实时的显示在编辑框,并把数据实时存入txt文件中 我在做一个基于VC6的MSComm控件的电机上位机控制,数据帧格式采用9600bps,8位数据位,奇校验,1位 ...

  4. Delphi利用MSCOMM控件进行GPS数据采集

    1.准备 GPS(Global Positioning System),即全球定位系统,利用GPS卫星的测距和测时功能进行全球定位,在许多系统中,如机场导航系统,出租车辆管理和调度系统.江河流域的灾害 ...

  5. VS2008下用MFC 的MSComm控件编写串口程序

    可以在:http://download.csdn.net/detail/plutus_lee/4525446 下载详细文档. 首先感谢网络资源吧,作为一个自动化专业出身的,不懂串口实在让我有点无奈,本 ...

  6. MFC使用mscomm控件实现plc通信

    废话不多说,直入主题! 我们的mscomm控件实现plc通信,主要分三步走: (一)mscomm控件下载,注册 (1)可以百度搜索下载mscomm控件 (2)如果觉得麻烦可以在我上传的资源处下载,地址 ...

  7. 《MSComm控件小结》

    一:在Visual C++ 6.0集成开发环境下,可以通过三种方法实现串口通信 1)运用MFC函数进行编程实现串口通信 2)运用MSComm控件进行编程实现串口通信 3)运用VC++运行库函数实现串口 ...

  8. jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?...

    jQuery里面的datepicker日期控件默认是显示英文的,如何让他显示中文或其他呢? [官方的写法]: (1)引入JS文件: <script type="text/javascr ...

  9. Android的WebView控件载入网页显示速度慢的究极解决方案

    Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] Android客户端中混搭HTML页面,会出现虽然H ...

最新文章

  1. Poj_3984走迷宫(广搜)
  2. 计算机分组教学,中职计算机教学分组协作式学习论文
  3. MySQL下使用Inplace和Online方式创建索引的教程
  4. 【软件测试】测试的强弱和健壮性
  5. AOV网和AOE网对比
  6. Web性能测试工具:http_load安装使用简介
  7. ace admin ajax加载页面,循环加载首页的解决办法
  8. 余额宝提现测试点【杭州多测师】【杭州多测师_王sir】
  9. 雪豹10.6升级10.8
  10. java繁体_Java-汉字繁体拼音转换
  11. storm风暴英雄 tempo_风暴英雄玩好乔汉娜需要知道的7个技巧 TempoStorm
  12. Android 项目集成有米 SDK 添加广告
  13. m苹果放n篮子_【求这个编程】 有m个橘子,n个篮子,把橘子全部放进篮子里的...
  14. 使用STM32F4浮点运算(FPU)功能开启+使用DSP库
  15. 使用shui文件夹遇到问题总结
  16. ps快速将白底图片变为透明图片
  17. VLAN的作用 与 基本原理
  18. 利用网络将Kindle3变成随身的报刊…
  19. mybatis解析-association实现原理详解
  20. 小米3连续快速点击android版本四次后出现屏幕是红的咋耨,小米3怎么打开usb调试...

热门文章

  1. 浮点运算计算机在线,双浮点运算计算器
  2. Linux系统下设置redis的密码 与 redis 命令
  3. Linux的swap损耗固态寿命吗,一文看懂固态硬盘使用寿命问题
  4. 面试官问,你为什么离职?
  5. gzip: stdin: unexpected end of file 问题的解决。
  6. Python XLRDError: Excel xlsx file; not supported解决方法
  7. Python 【Litte Tips】如何优雅地跳出双层循环
  8. Windows 10 企业版远程桌面连接CredSSP 加密数据库修正问题解决
  9. ArcSDE和Oracle分离安装(生产实践)
  10. Android岗大厂面试官常问的那些问题,知乎上转疯了!