Hi holzi!
Ich habe im Netz eine Möglichkeit dafür gefunden:
Code:
comport.Items.Clear
'comport.Sorted=true
Dim ports As String()
Dim port As String
ports = SerialPort.GetPortNames() 'Ports des Rechners ermitteln
For Each port In ports
Try
With SerialPort
.PortName = port
.ReadTimeout = Int32.Parse(50) 'ReadTimeout in ms
.Open()
End With
Catch es As Exception
Finally
If SerialPort.IsOpen = True Then
Me.comport.Items.Add(port)
End If
SerialPort.Close()
End Try
Next port
Bei der Zeile ports = SerialPort.GetPortNames() bekomme ich eine Warnung mit der ich irgendwie nichts anfangen kann:
Zugriff des freigegebenen Members, konstanten Members, Enumerationsmembers oder geschachtelten Typs über eine Instanz; der qualifizierende Ausdruck wird nicht ausgewertet. (BC42025) - C:\Users\William\Documents\SharpDevelop Projects\TriGUI_v1\TriGUI_v1\MainForm.vb:22
Außerdem dauert das Öffnen der verfügbaren COM ports ca. 8 Sekunden... Ist etwas lang, geht das vielleicht schneller...? Wenn nicht, würde ich da noch einen Button einfügen "Refresh available COM ports" und alle verfügbaren COM ports in einer Textdatei speichern. So müsste die Abfrage nicht jedes Mal durchgeführt werden, sondern nur wenn der User glaubt es könnte sich was geändert haben...
Lesezeichen