Estoy un poco decepcionado por la falta de intentar al menos darme una solución parcial. Aunque no pude encontrar una solución independiente del navegador, se me ocurrió una para IE en Windows, usando WMI, más precisamente el objeto ActiveX WbemScripting.SWbemLocator
. Es mejor que nada, mejor que "no puedes hacer eso".
Por lo tanto, para cualquier otra persona interesada, aquí está:
function pollConnectedDevices()
{
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var conn = locator.ConnectServer(".", "root\\cimv2");
var result = conn.ExecQuery("Select * From Win32_USBHub");
var enumer = new Enumerator(result);
for (;!enumer.atEnd();enumer.moveNext())
{
var hub = enumer.item();
alert(hub.Name + " " + hub.DeviceId);
}
setTimeout("pollConnectedDevices()",1000);
}
setTimeout("pollConnectedDevices()",1000);
sí, es sólo en IE en Windows. Sí, necesita el permiso del usuario para hacer su trabajo. Pero, SÍ, es algo, es posible, hace lo que necesito que haga.
Si alguien más sabe de otra manera, y estoy hablando aquí de código, no de opiniones, todavía estoy buscando soluciones parciales para otros navegadores y sistemas operativos. La consulta del dispositivo USB es algo interesante y, a pesar de todos los argumentos, digo que "es un software, se supone que debe hacer algo, no evitar que hagas algo".
...para qué sirve exactamente –
@Matti Virkkunen es para registrar dispositivos USB personalizados en un sitio web. Sería bueno que el usuario conecte el dispositivo mientras visita el sitio, y el dispositivo se reconoce automáticamente. – luvieere
+1 pregunta interesante. Está claro que la solución independiente del navegador es imposible. Sin embargo, algunos sitios web, como la banca en línea, podrían necesitar la búsqueda de algún dispositivo USB especial que proporcione el banco. – Oleg