En una aplicación C#, ¿cuáles son algunas buenas maneras de detectar la presencia de cierto dispositivo conectado a la computadora? Programaticamente, por supuesto. Necesito compatible con Windows XP y 7.Cómo detectar la presencia de cierto dispositivo
Antecedentes
Me han dado una gran aplicación de C# que utiliza algún dispositivo conectado. Los dispositivos son hardware personalizado y no están diseñados para usarse sin el software. Cuando se inicia la aplicación C#, busca dichos dispositivos conectados y se comunica con ellos cuando corresponda. Puede haber más de un dispositivo conectado. No he investigado el código fuente que busca en los dispositivos. Los dispositivos están conectados a la PC con un cable USB o de serie. Aparecen como puerto COM en el administrador de dispositivos. A veces puede haber conversores USB hub o seriales a USB entre la PC y el dispositivo.
Cuando el dispositivo está conectado con un concentrador USB determinado, o se utiliza cierto convertidor de serie a USB, a veces el software no puede detectar el dispositivo correctamente. A veces varía de PC a PC. No estamos seguros si esto causa algún controlador.
Me han dicho que investigue el algoritmo de búsqueda del dispositivo y, si es posible, proponga una mejor solución y reemplace la implementación actual. No he hecho este tipo de tareas antes y necesito aprender cómo Windows administra los dispositivos bajo el capó.
¿Cómo puedo buscar dispositivos conectados específicos en C#? ¿Cuáles son algunas buenas prácticas y qué debo tener en cuenta o evitar?
Tal vez este artículo se interresting: http://stackoverflow.com/questions/68749/working-with-usb-devices-in-net y http://www.developerfusion.com/article/84338/making-usb-c-friendly/ – Ruben
Puede enumerar todos los dispositivos conectados (usb) utilizando WMI o similar. Son bastante lentos para trabajar con ellos hasta donde puedo recordar. Sin embargo, podría haber mejores formas. http://stackoverflow.com/questions/3331043/get-list-of-connected-usb-devices – CodingBarfield