1. 程式人生 > >VB檢測串列埠

VB檢測串列埠

iamlaosong文

對不存在的串列埠進行操作會報錯,如下圖所示,那麼是不是先檢測一下再操作呢?


Windows系統並沒有提供什麼檢測功能,但是,可以對出錯進行捕獲,像上圖中的8002程式碼,表示無效埠號(其它程式碼還有8005埠已開啟、8018埠未開啟等),所以,用以下程式碼就可以檢查你機器有幾個COM口?哪些COM口可用?檢測的原理是依次開啟COM埠,如果不出錯,則COM埠可用,否則,根據錯誤程式碼判斷是被佔用還是不存在。

使用前首先需要先註冊MSCOMM32.OCX控制元件,方法是:

1、將MSCOMM32.OCX拷貝到C:\WINDOWS\SYSTEM32目錄下;

2、命令視窗執行命令:regsvr32 MSCOMM32.OCX,系統提示會提示"mscomm32.ocx 中的 DllRegisterServer 成功;

3、登錄檔HKEY_CLASSES_ROOT\Licenses下新增主鍵(項):4250E830-6AC2-11cf-8ADB-00AA00C00905

主鍵內容:kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun

在VB中進入“工程”,“部件”,對Microsoft comm Controls 6.0打勾,工具箱新增一個控制元件,把這個部件從工具箱拉到視窗內即可。

'用以下程式碼檢查你機器有幾個COM口,那些COM口可用

Private Sub Command1_Click()
    Dim a As Integer
    
    On Error GoTo uerror
    MSComm1.PortOpen = False
    For a = 1 To 4
        MSComm1.CommPort = a
        If MSComm1.PortOpen = True Then
            MsgBox "埠可用,已經開啟,Com號= " & a
            MSComm1.PortOpen = False '當False時是關閉
        Else
            MSComm1.PortOpen = True '當True時是開啟
            If MSComm1.PortOpen = True Then
                MsgBox "可用Com號= " & a
                MSComm1.PortOpen = False '當False時是關閉
            End If
        End If
    Next
    Exit Sub
uerror:
    If Err.Number = 8005 Then
        MsgBox "埠" & a & "已開啟,請關閉其它應用程式佔用的埠" & a
    ElseIf Err.Number = 8002 Then
        MsgBox "出錯Com號= " & a
    End If
    Resume Next
End Sub