Как получить доступ к устройствам на клиентском компьютере из браузера


Каковы различные способы доступа к устройствам на клиентском ПК-считыватель штрих-кодов, сканер и т. д. - из браузера? Я понимаю, что моим пользователям может понадобиться плагин. Эти устройства могут иметь API, специфичный для их устройства; я хотел бы использовать их API, если он доступен (возможно, Java, возможно, C, возможно, командная строка).

4 5

4 ответа:

ПодписанныйJava-апплет может иметь независимый от платформы доступ к большинству вещей. Пользователь должен установить Java и разрешить запуск подписанного апплета.

Если вы напишете плагин к NSAPI, Как только они его установят, у вас будет доступ практически ко всему, что может получить пользователь. Конечно, они должны установить плагин.

Flash предлагает довольно большой доступ к устройствам.

Это не тривиальная вещь, и для нее нет стандартизированного API (за исключением, возможно, области JScript/ActiveX, которая ограничена Internet Explorer).

Для доступа к сканерам через интерфейс TWAIN, проверьте этот вопрос для всех общедоступных вариантов, о которых я знаю.

Большинство других вещей будут сводиться к пользовательскому программированию Active-X и других плагинов. Я видел коммерческие Плагины сканера штрих-кодов, обсуждаемые на SO, но не могу найти вопрос прямо сейчас.

Многие считыватели штрих-кодов могут быть вставлены между клавиатурой и ПК, поэтому отсканированные штрих-коды попадают прямо в буфер клавиатуры. Другие устройства либо подключаются к последовательному порту, либо имеют драйверы, эмулирующие последовательный порт. Следующий код python скопирует данные из реального или виртуального COM-порта в буфер клавиатуры активного окна. Номер COM-порта жестко закодирован, но его можно легко изменить.

import serial
import SendKeys

ser = serial.Serial(2)
print ser.portstr
while 1: # exit loop when ctrl/c pressed
    line = ""
    while 1:
        char = ser.read()
        if char == "\r": break
        line = line + char
    print line
    SendKeys.SendKeys(line, 0)
ser.close()

В зависимости от того, что вы пытаетесь сделать, Silverlight и Adobe имеют некоторые ограниченные возможности в этой области. Веб-камеры, печать в Silverlight 4.0 и т. д. Однако это нетривиально. Silverlight 4.0 и Flash поддерживают сканирование штрих-кодов.