2010-09-18 16 views
11

Qué tecnología basada en navegador me permitiría consultar los dispositivos USB actualmente conectados del cliente, específicamente el nombre y la identificación del dispositivo de estos. Por supuesto, estoy de acuerdo con que el cliente tenga que permitir y confirmar dicha actividad.Cómo obtener dispositivos USB Lista del navegador

No me importa si en el nivel bajo, utiliza WMI, acceso directo o algún otro tipo de capa de acceso, todo lo que quiero es poder usarlo desde un navegador. Agradecería muestras de código y estaría muy contento con una solución independiente del navegador.

+1

...para qué sirve exactamente –

+0

@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

+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

Respuesta

3

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".

5

No puede hacer eso desde un navegador (por motivos). Necesitará algún complemento que el usuario tenga que instalar.

+1

El diablo está en los detalles, y esta respuesta es bastante santa. Sería bueno, sin embargo, darle un poco de sabor a detalles con respecto a, por ejemplo, tipo de complemento> versión de idioma> módulo de idioma/biblioteca> código de ejemplo. – luvieere

+0

@luvieere: Mi respuesta se limita a la información de que consultar el hardware USB (o cualquier otro) está (muy) fuera de lo que el software web del lado del cliente puede hacer. Necesitará complementos específicos de plataforma que el usuario deberá permitir específicamente. Algunos usuarios no podrán hacer esto. –

+0

@luvieere: esta es la mejor respuesta, desafortunadamente para ti. Tendrás que implementar algún tipo de código de terceros (fuera de tu aplicación web y del navegador del cliente) en la máquina del cliente. Teniendo esto en cuenta, podría ser más fácil escribir una aplicación multiplataforma que escribir complementos para cada tipo de navegador en cada tipo de sistema operativo. Si fuera usted, iría por una aplicación .NET o Java muy simple y minimalista. –

1

Tendrá que escribir un plugin para esto.

+1

Haga que esto sea útil, agregue algunos detalles. ¿Qué tecnología específica, qué módulo, qué tipo de acceso? – luvieere

0

Imposible hacerlo con javascript estándar.

Podría funcionar con ActiveX (solo IE y Windows) o Flash o una extensión de navegador (por sistema operativo).

+0

El flash suena prometedor. Expand, por favor. – luvieere

+0

No creo que Flash pueda hacer esto. Pero tal vez alguien sepa diferente? –

2

IE ActiveX, barra de herramientas IE, Netscape plugin wrapper (para Opera/Windows, Firefox/Windows, probablemente Chrome/Windows) => WMI. Presumiblemente, cualquier cosa así sería prohibida por cualquier software antivirus de grado de depósito.

Puede: a> ir por ese camino, b> ir con tarjetas inteligentes soporte nativo en lugar de hacer dongles USB de seguridad C> escribir su propio software, que se iniciará un servidor web en 127.0.0.1 y acceder a ella desde javascript su página (donde se ofrece la descarga de instalación).

+0

Estoy tratando de evitar el software adicional que es solo para este uso. Me gustaría ir a Flash o Silverlight, a la luz de su cobertura de navegadores y sistemas operativos. – luvieere

+0

@luvieere: Flash y Silverlight son tecnologías 'seguras' que __won't__ no funcionarán para usted. Por definición, necesitará algo feo como ActiveX. –

0

Hm, desde mi cabeza, creo que XBAP podría ayudarte. http://www.xbap.org/. A partir de ese momento, es solo C# con algún #usblib.

Editar Hm, dice que se ejecuta se ejecuta en modo de espacio aislado. Y parece ser solo un complemento de IE. Supongo que XBAP es una falla.

Cuestiones relacionadas