VB檢測串列埠
阿新 • • 發佈:2019-01-11
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