luv*_*ere 13 usb scripting browser-based
什么基于浏览器的技术将允许我查询客户端当前连接的USB设备 - 特别是这些设备的名称和设备ID.当然,我很好,客户必须允许并确认这样的活动.
我不关心在低级别,它使用WMI,直接访问或其他类型的访问层,我想要的只是能够在浏览器中使用它.我很欣赏代码示例,我对独立于浏览器的解决方案感到非常满意.
我对缺乏尝试至少给我一个部分解决方案感到有点失望。虽然我无法找到独立于浏览器的解决方案,但我想出了一个适用于 Windows 上 IE 的解决方案,使用 WMI,更准确地说是WbemScripting.SWbemLocatorActiveX 对象。这比什么都没有好,也比“你不能那样做”好。
因此,对于其他感兴趣的人,这里是:
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);
Run Code Online (Sandbox Code Playgroud)
是的,它仅适用于 Windows 上的 IE。是的,它确实需要用户的许可才能做它的事情。但是,是的,它是某种东西,它是可能的,它做了我需要它做的事情。
如果其他人知道另一种方式 - 我在这里谈论的是代码,而不是意见,我仍在寻找其他浏览器和操作系统的部分解决方案。USB 设备查询是一件有趣的事情,尽管有很多争论,我还是说“它是软件,它应该做某事,而不是阻止你做某事”。