Вопрос

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

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

Это было полезно?

Решение 2

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

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

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

Другие советы

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

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

Ты можешь: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 это промах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top