MsComm 文字传输

2008-02-23 06:58:35来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

假如您对 MSComm 的基本属性还不了解, 建议请先至MSComm 基本介绍一文中详读

表单画面

' 表单部分
'-------------------------------------------------------------
Form.Name = "Form1"
Caption = "Form1"
CommandButton.Name = Command2
Caption = "停止测试"
CommandButton.Name = Command1
Caption = "开始测试"
TextBox.Name = Text1
MSComm.Name = MSComm1
DTREnable = -1'True
Label.Name = Label1
AutoSize = -1'True
Caption = "欲送出的资料 - 按下[Enter]送出"
Label.Name = Label3
BorderStyle = 1'单线固定
Label.Name = Label2
AutoSize = -1'True
Caption = "折返显示"

' 程式部分
'-------------------------------------------------------------
Option Explicit
' 设一个此表单的区域变数,来作终止读取通讯埠的指标
Dim bStop As Boolean
' 设一个区域变数,来作读取通讯埠的暂存区
Dim InString As String

Private Sub Command1_Click()
bStop = False
Text1.SetFocus
With MSComm1
' 设定通讯埠号,可依照您的需求更改
.CommPort = 2
' 设定传输速率等,可依照您的需求更改
.Settings = "14400,N,8,1"
' 将通讯埠打开
.PortOpen = True
End With
' 假如使用者未按下「停止测试」钮(bStop = False), 则继续读取
Do While Not bStop
If MSComm1.InBufferCount Then
' 通讯埠中假如有资料的话, 则读取进来
InString = InString & MSComm1.Input
' 如果资料中有 Chr(13) 和 Chr(10) 的话, 则显示出来
If InStr(InString, VBCrLf) Then
Label3.Caption = Label3.Caption & InString
InString = ""
' 暂时把系统资源让出来给其它的程式使用
DoEvents
End If
End If
DoEvents
Loop
End Sub

Private Sub Command2_Click()
' 按下「停止测试」钮时, 把 bStop 设为「真」(True)
' 如此程式才会停止等待(或读取)通讯埠所收到的资料
bStop = True
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
bStop = True
' 把通讯埠关闭, 才不会影响其它程式的使用通讯埠
MSComm1.PortOpen = False
End
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
' 当按下 [Enter] 时, 把 Text1 文字框中的资料送至通讯埠
If KeyAscii = 13 Then
MSComm1.Output = Text1.Text & vbCrLf
Text1.Text = ""
KeyAscii = 0
End If
End Sub

上一篇: Modem通讯意外处理
下一篇: 用VB编写Windows CGI应用程序

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:VBScript 数据类型

下一篇:API实现完美的图片出现效果