Как получить список USB-устройств из браузера

Какая технология на основе браузера позволила бы мне запрашивать подключенные в данный момент USB-устройства клиента, в частности их имя и идентификатор. Конечно, я согласен с тем, что клиент должен разрешать и подтверждать такую ​​деятельность.

Мне все равно, если на низком уровне, он использует WMI, прямой доступ или какой-то другой уровень доступа, все, что я хочу, это иметь возможность использовать его из браузера. Я был бы признателен за примеры кода и был бы очень доволен независимым от браузера решением.

7 ответов

Решение

Я немного разочарован отсутствием попыток хотя бы дать мне частичное решение. Хотя я не смог найти независимое от браузера решение, я предложил одно для IE в Windows, используя WMI, точнее WbemScripting.SWbemLocator ActiveX Object. Это лучше, чем ничего, лучше, чем "ты не можешь этого сделать".

Итак, для всех, кто заинтересован, вот оно:

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

Да, это только на IE на Windows. Да, для этого нужно разрешение пользователя. Но, ДА, это что-то, возможно, оно делает то, что мне нужно.

Если кто-то знает другой путь - и я говорю здесь о коде, а не мнениях, я все еще ищу частичные решения для других браузеров и операционных систем. Запрашивать USB-устройства - интересная вещь, и, несмотря на все аргументы, я говорю, что "это программное обеспечение, оно должно что-то делать, а не мешать вам что-то делать".

Вы не можете сделать это из браузера (по причинам). Вам понадобится плагин, который должен установить пользователь.

IE ActiveX, панель инструментов IE, оболочка плагина Netscape (для Opera/Windows, Firefox/Windows, возможно Chrome/Windows) => WMI. Предположительно, любой подобный материал будет запрещен любым антивирусным программным обеспечением уровня Scrapyard.

Вы можете: a> пойти по этому пути, b> использовать встроенную поддержку смарт-карт вместо создания USB-ключей безопасности c> написать свое собственное программное обеспечение, которое запустит веб-сервер 127.0.0.1 и получит к нему доступ из javascript на вашей странице (где установка загрузки предлагается).

Java-апплет. Вы можете использовать http://javax-usb.org/.

И это было сделано с помощью Java-апплетов http://forums.sun.com/thread.jspa?threadID=5371360

Так что решение, безусловно, существует!!!

Вам нужно будет написать себе плагин для этого.

Невозможно сделать это с помощью стандартного JavaScript.

Может работать с ActiveX(только IE и Windows) или Flash или расширением браузера (для каждой ОС).

Хм, от всей головы, я думаю, что XBAP может помочь вам. http://www.xbap.org/. С тех пор это просто C# с некоторым #usblib.

Отредактируйте Хм, он говорит, что запускается, работает в режиме песочницы. И, похоже, плагин только для IE. Я думаю, XBAP - это мисс.

Другие вопросы по тегам