如何从浏览器访问客户端PC上的设备
从浏览器访问客户端PC上的设备(条形码阅读器,扫描仪等)的各种方法有哪些?我意识到我的用户可能需要一个插件。这些设备可能具有特定于其设备的API;如果可能,我想利用它们的API(也许Java,也许C,也许命令行)。如何从浏览器访问客户端PC上的设备
A signed Java applet可以独立于平台访问大多数事物。用户必须安装Java,并且必须允许签名的小程序运行。
如果你编写插件到NSAPI,一旦他们安装了它,你就可以访问用户可以访问的任何东西。当然,他们必须安装插件。
Flash提供了相当多的设备访问权限。
很好的回答;谢谢。 – Upperstage 2010-02-01 18:13:29
这不是一件简单的事情,它没有标准化的API(除了可能在限于Internet Explorer的JScript/ActiveX区域中)。
要通过TWAIN界面访问扫描仪,请查看this question了解我所知道的所有常用选项。
大部分其他事情都归结为自定义编程的Active-X和其他插件。我已经看到了SO上讨论过的商业条码扫描器插件,但现在找不到问题。
NSAPI非常标准。 – 2010-02-01 18:12:07
很好的链接,谢谢。 – Upperstage 2010-02-01 18:12:22
许多条形码阅读器可以插在键盘和PC之间,所以扫描的条形码直接进入键盘缓冲区。其他设备可以插入串行端口或具有仿真串行端口的驱动程序。以下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在这个领域都有一些有限的能力。 WebCams,在Silverlight 4.0中打印等等。但是,这并不重要。 Silverlight 4.0和Flash都支持条形码扫描。
我见过的每款条形码扫描器都可以作为键盘使用,所以它可以在任何地方使用键盘,而无需额外的设置。 – 2010-02-01 18:13:07
这些设备与扫描仪相比更像条形码阅读器。 – Upperstage 2010-02-01 18:14:44