COM Port name und SN auslesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    COM Port name und SN auslesen

    Hallo,

    Ich will mein COM5 auslesen Name und SN.
    Damit will ich erreichen, dass wenn COM5 name = "USB to RS232" und SN = "1234567" hatt ein Testprogramm startet.
    Ich habe schon ein Code gefunden womit ich aber nur denn COM1 auslesen kann habe ihn auch schon paar mal umgeschrieben komme aber nicht auf dem COM5.
    An mein COM5 ist ein USB-RS232 adapter angeschlossen.



    VB.NET-Quellcode

    1. Imports System.Management
    2. Public Function GetSerial()
    3. Dim queryA As String = "Select * from Win32_SerialPort"
    4. Dim pd As PropertyData
    5. Dim Device_Name As String = "Device-Name"
    6. 'Im Beispiel hier müsste dann folgendes da stehen:
    7. 'Dim Device_Name As String = "CP210x USB to UART Bridge Controller"
    8. Dim Found_Device As Boolean = False
    9. Dim Port As String = ""
    10. Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher(queryA)
    11. Dim moc As ManagementObjectCollection = mos.Get()
    12. For Each mo As ManagementObject In moc
    13. For Each pd In mo.Properties
    14. On Error Resume Next
    15. If pd.Name.ToString() = "Description" Then
    16. If pd.Value.ToString() = Device_Name Then
    17. Found_Device = True
    18. Else
    19. Found_Device = False
    20. End If
    21. End If
    22. If Found_Device = True And pd.Name.ToString() = "DeviceID" Then
    23. Port = pd.Value.ToString()
    24. mos.Dispose()
    25. moc.Dispose()
    26. GC.Collect()
    27. Return Port
    28. End If
    29. Next
    30. Next
    31. mos.Dispose()
    32. moc.Dispose()
    33. GC.Collect()
    34. Return "Device Not Found"
    35. End Function
    Ich löse es immer so, dass ich die Antwort eines angeschlossenen Gerätes kenne und darauf hin prüfe. Also Port versuchen zu öffnen. Klapt das, dann was absenden und auf die Antwort warten. Kommt die Richtige, weiß ich, dass es der richtige Port ist.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Genau.
    Sieh Dir mal dies an:

    VB.NET-Quellcode

    1. Dim aa() As String = System.IO.Ports.SerialPort.GetPortNames()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!