RSS
StartseiteKnowledge LibraryTop 10Impressum

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.

Links zum Thema