Virtual Com Port mit VB automatisch finden

Gast #1378620
Lesenswert?

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 #1378906
Lesenswert?

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
#1378932
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren