Come accedere alle informazioni in Gestione periferiche di Windows da Java?
Ho un dispositivo seriale a USB e più di uno di questi può essere collegato al computer. Ho bisogno di interrogare e recuperare un elenco di porte COM a cui i dispositivi sono collegati. In Gestione periferiche di Windows è possibile ottenere la porta COM + nome amichevole dei dispositivi che sono collegati al momento attuale. Questo elenco è dinamico.
Lettura dal registro non ha funzionato perché le informazioni memorizzate sono stantie e statiche, non dinamiche.
Devcon (da Microsoft) elenca le porte a cui i dispositivi sono connessi, ma non può essere utilizzato nella mia app perché non è ridistribuibile.
Qualche idea o preferibilmente una soluzione?
4 answers
Ho dovuto risolvere un problema simile solo alcune settimane fa. Sono venuto attraverso il Jawin-Progetto che ha fornito tutto il necessario per utilizzare WMI-Query. È già abbastanza vecchio ma funziona come un fascino se segui la documentazione. Un bel walkthrough tedesco può essere trovato codegods blog.
Per me, non ha risolto tutti i problemi (ho avuto alcune cose molto specifiche per scoprire il dispositivo di destinazione), ho finalmente creato un proprio JNI (nativo Java Interfaccia) Classe e DLL in C che incorporano l'API di Windows.
Spero che questo sia quello che hai cercato.
Hai provato questo JUSB APIo Questo esempio?
Spero che questo ti aiuterà.
Usa JNA ( https://github.com/twall/jna) e dai un'occhiata alla pagina seguente. Potrebbe essere un punto utile da cui partire.
Http://www.digitalinferno.com/wiki/Wiki.jsp?page=JNAPrintDevices
Sto guardando Java Native Access in quanto fornisce l'accesso all'API di Windows dal codice Java puro - nessun JNI da gestire. Ero preoccupato per la licenza LGPL; se può essere incluso in un prodotto commerciale, ma da quello che alcuni post nel newsgroup dicono, può essere. Dopo averlo provato nelle prossime settimane, pubblicherò di nuovo qui.