如何从浏览器获取USB设备列表
-
04-10-2019 - |
题
基于浏览器的技术将使我能够查询客户当前连接的USB设备 - 特别是其中的名称和设备ID。当然,我可以允许客户允许并确认此类活动。
我不在乎在低水平,它使用WMI,直接访问或其他类型的访问层,我想要的就是能够在浏览器中使用它。我会欣赏代码样本,并且对无浏览器无关的解决方案感到非常满意。
解决方案 2
我对缺乏至少给我部分解决方案感到有些失望。尽管我找不到与浏览器无关的解决方案,但我在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);
是的,它仅在Windows上的IE上。是的,它确实需要用户的权限来完成其工作。但是,是的,这是有可能的,它可以做我需要做的事情。
如果其他人知道另一种方式 - 我在这里谈论的是代码,而不是意见,那么我仍在寻找其他浏览器和OS的部分解决方案。 USB设备查询是一件有趣的事情,尽管有所有参数,但我说:“它是软件,应该做某事,而不是阻止您做某事”。
其他提示
您不能从浏览器(有原因)中这样做。您需要一些用户必须安装的插件。
IE ActiveX,IE工具栏,Netscape插件包装器(用于Opera/Windows,Firefox/Windows,可能是Chrome/Windows)=> WMI。大概有任何废墟级防病毒软件禁止任何此类内容。
您可以:a>那样,b>使用智能卡本机支持,而不是制作USB安全性加密狗C>写下自己的软件,该软件将以127.0.0.1.1启动Web服务器,并从页面上的JavaScript访问它(其中提供安装下载)。
您需要为此写一个插件。
Java小程序。您可以使用 http://javax-usb.org/ .
而且它已经使用Java小程序完成了 http://forums.sun.com/thread.jspa?threadid=5371360
因此,解决方案肯定存在!!!
无法使用标准JavaScript进行操作。
可能与ActiveX(仅IE和Windows)或Flash或浏览器扩展程序(每个OS)一起使用。
嗯,从我的头顶上,我认为XBAP可能会为您提供帮助。 http://www.xbap.org/. 。从那时起,它只是#usblib的c#。
编辑 hm,它说它以沙盒模式运行。它似乎是仅限的插件。我猜 xbap 是一个错过。