Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[Snippet] Bessere Methode als SerialPort.GetPortNames()
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

Themenstarter:

[Snippet] Bessere Methode als SerialPort.GetPortNames()

beantworten | zitieren | melden

Beschreibung:

Mir ist aufgefallen, das SerialPort.GetPortNames(), bei mir zumindest, falsche Ports ausgibt.

Beispiel:

COM3
COM5c
COM6c
COM101
COM111
COM121

Richtig muss es heißen:

COM3
COM5
COM6
COM10
COM11
COM12

Deswegen dieser Snippet.
In der Registry unter dem Schlüssel
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

befinden sich alle verfügbaren COM-Ports.
Die Methode ToComboBox() fülltr die angegebene ComboBox, ToStringArray() gibt ein Array mit den Ports zurück.

Das Problem: Registery.GetValue() gibt auch in umfangreicheren Programmen (warum auch immer ?( ?() nicht ganz richtige Werte zurück. Da meistens hinten nur z.B. ein 'c' (ohne ') angehängt ist, lässt sich das Zeichen einfach mit einem RegEx entfernen.

Dieser Snippet sortiert die Ports nicht alphabetisch, sondern nummerisch.

Ich verwende .NET Framework 3.5 und Visual C# 2008 Express.

Noch ein kleiner, aber wichtiger Hinweis: Wenn ich den Code Debugge kommen auch (warum auch immer ?( ?() falsche COM-Ports raus.

Schlagwörter: Usb, COM, Serial, falsch, GetPortNames, IO, Problem, System, Lösung, C#, C Sharp, fehler, Ports, Port, Seriell, CS, cs
Dieser Beitrag wurde 8 mal editiert, zum letzten Mal von markus111 am .
Attachments
private Nachricht | Beiträge des Benutzers