📄 frmmscomm1.frm
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form FrmMscomm1
Caption = "Mscomm-利用Mscomm判断Modem的状态"
ClientHeight = 5745
ClientLeft = 2280
ClientTop = 2040
ClientWidth = 6420
LinkTopic = "Form1"
ScaleHeight = 5745
ScaleWidth = 6420
Begin VB.CommandButton cmdDispaly
Caption = "&Dispaly"
Height = 375
Left = 4200
TabIndex = 3
Top = 360
Width = 1515
End
Begin VB.CommandButton cmdClear
Caption = "&Clear"
Height = 375
Left = 975
TabIndex = 2
Top = 360
Width = 1365
End
Begin VB.CommandButton cmdTest
Caption = "&Test"
Height = 375
Left = 2550
TabIndex = 1
Top = 360
Width = 1515
End
Begin VB.TextBox txtStatus
Height = 4650
Left = 150
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 0
Top = 900
Width = 5640
End
Begin MSCommLib.MSComm MSComm1
Left = 150
Top = 225
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
End
Attribute VB_Name = "FrmMscomm1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub cmdClear_Click()
Me.txtStatus = ""
End Sub
Private Sub cmdDispaly_Click()
Dim s As String
s = IIf(MSComm1.CDHolding, "有载波信号", "无载波信号") & vbCrLf _
& IIf(MSComm1.CTSHolding, "Clear TO Send:传输可以进行", "不允许传输数据") & vbCrLf _
& IIf(MSComm1.DSRHolding, "数据终端准备好", "终端未准备好")
Me.txtStatus = Me.txtStatus & vbCrLf & s
End Sub
Private Sub cmdTest_Click()
Dim buffer As Variant
With Me.MSComm1
If .PortOpen = True Then
MsgBox "端口已经打开"
Exit Sub
End If
.CommPort = 2 ' 设置并打开窗口
.Settings = "9600,N,8,1"
.PortOpen = True
' 发送一个字符串
buffer = "Test"
.Output = buffer
End With
End Sub
Private Sub MSComm1_OnComm()
Dim s As String
Select Case MSComm1.CommEvent ' 错误
Case comEventBreak ' 收到 Break。
s = "收到 Break"
Case comEventCDTO ' CD (RLSD) 超时。
s = "载波检测超时。在系统规定时间内传输一个字符时,Carrier Detect 线为低电平。Carrier Detect 也称为 Receive Line Signal Detect (RLSD)。"
Case comEventCTSTO ' CTS Timeout。
s = "CTS Timeout"
Case comEventDSRTO ' DSR Timeout。
s = "DSR Timeout。"
Case comEventFrame ' Framing Error
s = "Framing Error"
Case comEventOverrun ' 数据丢失。
s = "数据丢失。"
Case comEventRxOver ' 接收缓冲区溢出。
s = "接收缓冲区溢出。"
Case comEventRxParity ' Parity 错误。
s = "Parity 错误。"
Case comEventTxFull ' 传输缓冲区已满。
s = "传输缓冲区已满。"
Case comEventDCB ' 获取 DCB 时意外错误
s = "获取 DCB 时意外错误"
Case comEvCD ' CD 线状态变化。
s = "CD 线状态:" & _
IIf(MSComm1.CDHolding, "调制解调器正在联机", "无联机")
Case comEvCTS ' CTS 线状态变化。
s = "CTS 线状态变化:" & _
IIf(MSComm1.CTSHolding, "传输可以进行", "传输不允许进行")
Case comEvDSR ' DSR 线状态变化。
s = "DSR 线状态变化:" & _
IIf(MSComm1.CTSHolding, "数据终端准备好", "数据终端没有准备好")
Case comEvRing ' Ring Indicator 变化。
s = "Ring Indicator 变化。"
Case comEvReceive ' 收到 RThreshold # of chars.
s = "收到" & MSComm1.RThreshold & "个字符"
Case comEvSend ' 传输缓冲区有 Sthreshold 个字符
s = "传输缓冲区有" & MSComm1.SThreshold & "个字符"
Case comEvEOF ' 输入数据流中发现 EOF 字符
s = "输入数据流中发现 EOF 字符"
End Select
Me.txtStatus = Me.txtStatus & vbCrLf & s
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -