Zugriff auf Gerätemanager von Windows

sharkscream

Grünschnabel
Hallo zusammen,

gibt es die Möglichkeit in Java auf den Geräte-Manager von Windows zuzugrifen. Speziell möchte ich auslesen, welche seriellen Ports momentan am Rechner angeschlossen sind, und vor allem wie sie heißen. Die RXTX- sowie die JAVA.COMM Library, welche serielle Kommunikation ermöglichen, liefern leider nicht diese Info (zumindest hab ich es noch niergends gefunden). Daher die Überlegung, dass man doch irgendwie über die Windows API, etc. da dran kommen müsste.

Kann mir jemand weiterhelfen?
 
Hallo,

da gäbs mehrere Möglichkeiten. Zum einen könntest du via WMI (Windows Management Instrumentation) die Serial / USB-Ports auslesen.
Eine andere Mögllichkeit wäre ein paar Powershell-Kommandos von Java aus (via ProcessBuilder) abzusetzen und die Ausgabe zu parsen.
Beispielsweise:
Alle USB Devices:
gwmi Win32_USBControllerDevice |fl Antecedent,Dependent

Alle Serial Ports:
[System.IO.Ports.SerialPort]::getportnames()

Eine weitere Möglichkeit wäre die entsprechenden Stellen der Registry auszulesen. Du könntest auch über JNA (Java Native Access) entsprechende Funktionen aus Windows-DLLs aufrufen um an die Information zu gelangen.

Gruß Tom
 
Super, danke!

Über WMI funktioniert schon mal so einigermaßen. Hab nur das Gefühl, dass es etwas dauert, bis neu eingestöpselte Geräte auch per WMI verfügbar sind.

Hast du ein Beispiel, wie ich die Informationen aus der Registry oder über ne DLL auslesen kann?
 
Zurück