10.16 Wie liste ich die verfügbaren seriellen Schnittstellen auf?
VB5-VB6
Von: Thorsten Dörfler
Die serielle Schnittstelle ist zwar eine aussterbende Art, aber immer noch die häufigste Verbindungsform zu externen Geräten. Möchten Sie alle verfügbaren seriellen COM-Ports auflisten, können Sie das MSComm-Steuerelement verwenden und versuchen alle möglichen COM-Ports von 1-16 (Windows unterstützt mehr als 16 Ports, dies ist eine Einschränkung des Steuerelements) zu öffnen und werten dabei das Ergebnis aus.
Dies erlaubt gleichzeitig festzustellen, ob ein Port bereits belegt ist und diesen aus dem Ergebnis auszuschließen:
Public Function CommPortsAvail(ByRef MSComm As MSComm, _ Optional ByVal FreePortsOnly As Boolean _ ) As Variant Dim lPorts() As Integer Dim lPort As Integer Dim l As Integer On Error Resume Next With MSComm For lPort = 1 To 16 .CommPort = lPort .PortOpen = True If (Err.Number <> comPortInvalid) Then If Not (FreePortsOnly And _ Err.Number = comPortAlreadyOpen) Then ReDim Preserve lPorts(l) lPorts(i) = lPort l = l + 1 End If End If If (.PortOpen) Then .PortOpen = False End If Err.Clear Next End With CommPortsAvail = lPorts() End Function
Wenn Sie mit VB6 arbeiten, können Sie sich den Umweg über den Variant zur Rückgabe des Array sparen und direkt das Integer Array deklarieren und zurückgeben.