你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
VB中与通讯口交互的实现方法
 

   本文介绍一种在VB中与通讯口交互信息的一种方法与技巧,以解决在程序开发过程中需要与计算机外围设备进行交互的问题。

 

一、引言

在计算机程序设计过程中,经常会遇到与外围设备进行交互的问题,如读鼠标、数字化仪等外围设备的串口信息以及读打印机等并口信息,应用程序通过对计算机串、并口的读写操作,满足用户需求。本文仅以读写调制解调器信息为例进行论述。

二、应用程序的编写

    VB6.0环境下,新建一标准EXE工程,工程名(Communation),工程文件名为(Communation.vbp,窗体名(Comm,窗体文件名(Comm.frm)。窗体属性Caption为“MSComm 电话拨号器”。在工程菜单部件中选择添加”Microsoft  Comm  Control 6.0”,窗体中添加如图1所示的各种控件。DialButtonCaption属性为“拔号”, CancelButtonCaption属性为“取消” QuitButtonCaption属性为“退出”, Label1Caption属性为“要拔号码,请击“拔号”按钮”,BorderStyle属性设为1-Fixed SingleMSComm1的属性值采用控件默认属性。


 


            

          MSComm1  DialButton CancelButton  QuitButton       Label1

程序实现代码如下:

  Comm.FRM

'   演示如何用调制解调器拨电话号码.

'   要求电话和调制解调器用同一根电话线相连

DefInt A-Z

' 当用户选择取消时设置此标志。

Dim CancelFlag

 

调用窗体Commr的事件

Private Sub Form_Load()

    ' 告知 MSComm1读取输入缓冲区中的全部内容。

    MSComm1.InputLen = 0

End Sub

 

“取消”按钮单击事件

Private Sub CancelButton_Click()

    ' CancelFlag 用来告知退出拨号过程。

    CancelFlag = True

    CancelButton.Enabled = False

End Sub

 

“退出”按钮单击事件

Private Sub QuitButton_Click()

    End

End Sub

 

“拔号”按钮单击事件

Private Sub DialButton_Click()

    Dim Number$, Temp$

    DialButton.Enabled = False

    QuitButton.Enabled = False

    CancelButton.Enabled = True

    ' 取得要拨的电话号码。

    Number$ = InputBox$("请输入电话号码:", Number$)

        If Number$ = "" Then Exit Sub

    Temp$ = label1

    Label1 = "正在拨号码 - " + Number$

    ' 拨选定的电话号码。

    Dial Number$

    DialButton.Enabled = True

    QuitButton.Enabled = True

    CancelButton.Enabled = False

    Label1 = Temp$

End Sub

 

定义一拔号子过程

Private Sub Dial(Number$)

    Dim DialString$, FromModem$, dummy

    ' AT 是贺氏兼容 ATTENTION 命令并且要求发送命令到调制解调器。

    ' DT "音频拨号";DP = “脉冲拨号

    ' Numbers$ 为要拨的电话号码。

    ' 分号告知调制解调器拨号后返回命令

    ' 一个回车, vbCr, 当发送命令到调制解调器时被要求。

    DialString$ = "ATDT" + Number$ + ";" + vbCr

    ' 假设调制解调器端口设置为 COM2

    MSComm1.CommPort = 2

    MSComm1.Settings = "9600,N,8,1"

    ' 打开通信端口

    On Error Resume Next

    MSComm1.PortOpen = True

    If Err Then

       MsgBox " COM2: 不可用。 更改 CommPort 属性使其使用其它串口"

       Exit Sub

    End If

    ' 清空输入缓冲区。

    MSComm1.InBufferCount = 0

    ' 拨电话号码。

    MSComm1.Output = DialString$

    ' 等待调制解调器返回信息

    Do

       dummy = DoEvents()

       ' 如果缓冲区中有数据,则把它读出来。

       If MSComm1.InBufferCount Then

          FromModem$ = FromModem$ + MSComm1.Input

          If InStr(FromModem$, "OK") Then

             ' 提醒用户摘电话。

             Beep

             MsgBox "请您摘电话然后按“回车”键或单击“确定”"

             Exit Do

          End If

       End If

        ' 用户是否选择“取消”?

       If CancelFlag Then

          CancelFlag = False

          Exit Do

       End If

    Loop

    ' 断开与调制解调器的连接。

    MSComm1.Output = "ATH" + vbCr

    ' 关闭端口。

    MSComm1.PortOpen = False

End Sub

三、结束语

   本文较为详细的提供了一种与计算机外围设备-调制解调器进行信息交互的例子,为程序员开发有关计算机与通讯口交互方面的程序提供了一个好的例子。

  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089