代码之家  ›  专栏  ›  技术社区  ›  luvieere

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

  •  13
  • luvieere  · 技术社区  · 14 年前

    什么基于浏览器的技术可以让我查询客户机当前连接的USB设备-特别是这些设备的名称和设备ID。当然,我同意客户必须允许和确认这样的活动。

    我不在乎它是否在底层使用了WMI、直接访问或其他类型的访问层,我只想在浏览器中使用它。我会非常感谢代码示例,并且我会非常满意一个独立于浏览器的解决方案。

    7 回复  |  直到 9 年前
        1
  •  5
  •   Henk Holterman    14 年前

    你不能在浏览器中这样做(有原因的)。您需要用户安装一些插件。

        2
  •  3
  •   luvieere    14 年前

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

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

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

    是的,它只在窗户上。是的,它需要用户的许可才能完成它的工作。但是,是的,这是一件事,是可能的,它做了我需要它做的事情。

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

        3
  •  2
  •   kagali-san    14 年前

    IE ActiveX、IE工具栏、Netscape插件包装(对于Opera/Windows、Firefox/Windows,可能是Chrome/Windows)=>WMI。大概任何这样的东西都会被任何垃圾场级的杀毒软件禁止。

    你可以: A>这样做,B>使用智能卡本机支持,而不是制作USB安全加密狗C>编写您自己的软件,该软件将在127.0.0.1启动Web服务器,并从您页面上的javascript访问它(提供安装下载)。

        4
  •  1
  •   Brad    14 年前

    您需要为此编写一个插件。

        5
  •  1
  •   jknair    14 年前

    一个Java小程序。你可以用 http://javax-usb.org/ .

    而且它已经使用Java小程序完成了。 http://forums.sun.com/thread.jspa?threadID=5371360

    所以,解决方案肯定存在!!!

        6
  •  0
  •   letronje    14 年前

    用标准的javascript不可能做到这一点。

    可以使用ActiveX(仅限于IE和Windows)或Flash或浏览器扩展(每个操作系统)。

        7
  •  0
  •   Gleno    14 年前

    嗯,从我的头上看,我想XBAP可能会帮你。 http://www.xbap.org/ . 从那时起,它只不过是C和一些usblib。

    编辑 嗯,它说它在沙盒模式下运行。而且它似乎是唯一的插件。我猜 XBAP 是个小姐。