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...