登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 网络编程 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

用MSComm控件实现来电显示
发表日期:2002-09-13作者:李立华[原创] 出处:  

来电显示的实现

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控件实现来电显示

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00199