如何从浏览器获取USB设备列表

时间:2010-09-18 19:16:40

标签: scripting usb browser-based

基于浏览器的技术允许我查询客户端当前连接的USB设备 - 特别是这些设备的名称和设备ID。当然,我很好,客户必须允许并确认这样的活动。

我不在乎是否在低级别,它使用WMI,直接访问或其他类型的访问层,我想要的只是能够在浏览器中使用它。我非常感谢代码示例,我对独立于浏览器的解决方案感到非常满意。

7 个答案:

答案 0 :(得分:5)

您无法从浏览器中执行此操作(有原因)。您需要一些用户必须安装的插件。

答案 1 :(得分:3)

我有点失望,因为没有尝试至少给我一个部分解决方案。 虽然我无法找到独立于浏览器的解决方案,但我在Windows上使用WMI,更准确地说是WbemScripting.SWbemLocator ActiveX对象,想出了一个用于IE的IE。它总比没有好,比“你做不到”更好。

所以,对于其他感兴趣的人,这里是:

    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);

是的,它仅适用于Windows上的IE。是的,它确实需要用户的许可来做它的事情。但是,是的,它是可能的,它做了我需要做的事情。

如果其他人知道另一种方式 - 我在这里谈论的是代码,而不是意见,我仍然在寻找其他浏览器和操作系统的部分解决方案。 USB设备查询是一件有趣的事情,尽管存在各种争论,但我说“它是软件,应该做些什么,而不是阻止你做某事”。

答案 2 :(得分:2)

IE ActiveX,IE工具栏,Netscape插件包装(适用于Opera / Windows,Firefox / Windows,可能是Chrome / Windows)=> WMI。据推测,任何此类东西都会被任何scrapyard级别的防病毒软件禁止。

您可以: 一个>那样,b>使用智能卡原生支持而不是制作USB安全加密狗c>编写自己的软件,启动127.0.0.1的网络服务器,并从页面上的javascript访问它(提供安装下载的地方)。

答案 3 :(得分:1)

你需要为自己写一个插件。

答案 4 :(得分:1)

一个java applet。您可以使用http://javax-usb.org/

使用java applets http://forums.sun.com/thread.jspa?threadID=5371360

已经完成了

所以确实存在一个解决方案!!!

答案 5 :(得分:0)

无法使用标准的JavaScript进行此操作。

可能使用ActiveX(仅限IE和Windows)或Flash或浏览器扩展(按操作系统)。

答案 6 :(得分:0)

嗯,从我的头脑中,我认为XBAP可能会帮助你。 http://www.xbap.org/。从那时起,它只是带有一些#usblib的c#。

编辑嗯,它说它在沙盒模式下运行。它似乎只是IE浏览器。我猜 XBAP 是一个未命中。