基于浏览器的技术允许我查询客户端当前连接的USB设备 - 特别是这些设备的名称和设备ID。当然,我很好,客户必须允许并确认这样的活动。
我不在乎是否在低级别,它使用WMI,直接访问或其他类型的访问层,我想要的只是能够在浏览器中使用它。我非常感谢代码示例,我对独立于浏览器的解决方案感到非常满意。
答案 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)
编辑嗯,它说它在沙盒模式下运行。它似乎只是IE浏览器。我猜 XBAP 是一个未命中。