Как получить список USB-устройств из браузера - PullRequest
13 голосов
/ 18 сентября 2010

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

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

Ответы [ 7 ]

5 голосов
/ 18 сентября 2010

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

3 голосов
/ 03 октября 2010

Я немного разочарован отсутствием попыток хотя бы дать мне частичное решение. Хотя я не смог найти независимое от браузера решение, я предложил одно для 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-устройства интересно, и, несмотря на все аргументы, я говорю, что «это программное обеспечение, оно должно что-то делать, а не мешать вам что-то делать».

2 голосов
/ 18 сентября 2010

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

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

1 голос
/ 03 октября 2010

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

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

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

1 голос
/ 18 сентября 2010

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

0 голосов
/ 02 октября 2010

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

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

0 голосов
/ 18 сентября 2010

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

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

...