Com-Ports der Modems bestimmen



  • Hallo zusammen,

    ich bräuchte eine Möglichkeit um alle Modems (wie in der Systemsteuerung aufgelistet) des Systems (die Namen) zu erhalten und die entsprechenden COM-Ports der Modems zu bestimmen. Ganz ehrlich verzweifle ich an dieser Aufgabe. Irgendwie muss es doch möglich sein...

    Danke für Anregungen!



  • Deine Problemstellung teile ich in 2 Bereiche auf:
    Teilaufgabe Nr.1: Abfragen (d.h. "enumerieren") der vorhandenen COM-Ports
    Teilaufgabe Nr.2: Modem(s) an den gefundenen COM-Ports identifizieren:

    Zu Teil Nr.1:
    Evtl. mit einem Device Manager (SetupAPI - GUID_DEVINTERFACE_COMPORT) und den zugehörigen "friendly names" des jeweiligen COM-Ports?

    Auf http://www.naughter.com/enumser.html findest Du das Tool "EnumSerialPorts 1.16" und den zugehörigen Sourcecode.
    Dieses Tool enumeriert vorhandene COM-Ports auf 7 verschiedenen Methoden. Laß Dich deshalb nicht davon abschrecken, das ist Anschauungsmaterial par excellence!

    Dieses Tool liefert mir beispielsweise auf meinem Rechner folgende Informationen (Methoden 4 und 5):
    COM1 <FTS Capable Communications Port>
    COM2 <Kommunikationsanschluss>
    COM3 <Prolific USB-to-Serial Comm Port>
    COM4 <USB Serial Port>

    Ich denke, damit kannst Du erkennen ob ein Modem an einem COM-Port angeschlossen ist. Ich selber habe kein Modem zum Ausprobieren...

    Hinweis: COM-Port Enumeration mit WMI (also Methode 7 von obigem Tool) ist unzuverlässig bei USB-COM-Port Adaptern!

    Kannst mich ja fragen zu diesem Tool, falls Du nicht vorankommst.

    Teil Nr.2:
    Spontan fällt mir hierzu das Absetzen eines bestimmten AT-Kommanods (irgendwass um eine Kennung oder Name auszulesen, habs natürlich nicht im Kopf) über die vorhin in Teil Nr. 1 gefundenen COM-Ports ein, mit Auswertung der zugehörigen Antwort -> Modem ist da oder nicht.
    (Ich bin davon ausgegangen, daß Du weißt was AT-Kommandos sind, wenn Du Dich mit Modems beschäftigst)

    Gruß
    Martin



  • Vielen Dank Mmacher... läuft alles super...

    Vielleicht für die die es nachmachen wollen. Der Enumser funktioniert so nicht, zwar zählt er Comports auf aber leider nur die die auch als solche durch die ClassGuid markiert sind. Modems haben eine eigene ClassGuid und sind somit nach dem Enumser keine COM-Ports (oder so ähnlich) :)...

    Nochmals vielen Dank Mmacher... mit dem AT-Skripten komm ich (hoffentlich) klar 🙂


Anmelden zum Antworten