Virtual Com Port mit VB automatisch finden

Gast #1378620
Guten Tag,

ich habe ein Problem mit einem Gerät. Das Gerät erzeugt einen virtuellen 
Com-Port über eine USB Schnittstelle am PC. Ich möchte nun mit VB auf 
dieses Gerät zugreifen, ohne den Com-Port einstellen zu müssen.

Das Problem ist, dass das Gerät einen Timeout von 2s hat und deshalb 
dauert es immer ziemlich lange wenn man einfach alle aktiven Ports 
abfragt.

Gibt es sonst noch irgendwelche Möglichkeiten zu erkennen dass es ein 
virtueller Port ist z.B. über die PID/VID...?

Hoff mir kann jemand helfen.
Gast
Hi,
bei meinem Programm, welches ebenfalls die Ser. Ports nutzt, habe ich 
einen einfachen Test aller 16 Com-Ports realisiert, um herauszufinden, 
ob am Port was angeschlossen ist. Das sollte bei dir auch funktionieren:
1
Private Sub Form_Load()
2
    '-----------------------------
3
    'Port-Test
4
    On Error GoTo PortTestError
5
    Dim oldPort As Integer
6
    oldPort = MSComm1.CommPort
7
    For i = 0 To 15
8
        optComPort(i).ForeColor = &H80000011
9
        MSComm1.CommPort = i + 1
10
        MSComm1.PortOpen = True
11
        MSComm1.PortOpen = False
12
        optComPort(i).ForeColor = &H80000012
13
NextPortTest:
14
    Next i
15
    MSComm1.CommPort = oldPort
16
    '-----------------------------
17
    
18
On Error GoTo 0
19
    Exit Sub
20
    
21
PortTestError:
22
    Resume NextPortTest
23

24
End Sub
Es sind 255, denn COM 0 gibts nicht. Aber egal. Das stupide Öffnen aller 
Com-Ports dauert erstens lange und zweitens kann das sehr dreckige 
Nebeneffekte haben. Wenn ich z.B. den virtuellen COM Port meines 
Original TI USB Debuggers für den MSP430 öffne, obwohl er gerade durch 
die Debug-Software geöffnet ist, schmiert die Software ab und der COM 
Port ist auch nicht mehr anzusprechen bis man USB abzieht und wieder 
ansteckt. Das sollte man tunlichst unterlassen, das ist einfach nur 
schlampig und dreckig programmiert. Eine simple Abfrage der 
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM zeigt alle verfügbaren 
COM Ports an, ohne dass man dran rum fummeln muss.
Gast
Also danke für die Beiträge,

das funktioniert jetzt einwandfrei. Über das Registry ist es echt viel 
besser und schneller, nicht so wie die einzelnen Ports zu öffnen und 
abzufragen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.