【问题标题】:How to access devices on a client PC from a browser如何从浏览器访问客户端 PC 上的设备
【发布时间】:2010-02-01 18:02:36
【问题描述】:

从浏览器访问客户端 PC 上的设备(条形码阅读器、扫描仪等)的各种方法有哪些?我意识到我的用户可能需要一个插件。这些设备可能具有特定于其设备的 API;如果可用,我想利用他们的 API(可能是 Java,可能是 C,可能是命令行)。

【问题讨论】:

  • 我见过的每个条码扫描器都可以用作键盘,因此无需额外设置即可在任何地方使用键盘。
  • 这些设备更像是扫描仪而不是条形码阅读器。

标签: javascript browser plugins peripherals


【解决方案1】:

已签名 Java 小程序可以独立于平台访问大多数内容。用户必须安装 Java,并且必须允许签名的小程序运行。

如果您向NSAPI 编写插件,一旦他们安装了它,您就可以访问用户可以访问的任何内容。当然,他们必须安装插件。

Flash 提供了对设备的大量访问。

【讨论】:

    【解决方案2】:

    这不是一件小事,并且没有标准化的 API(可能在仅限于 Internet Explorer 的 JScript/ActiveX 领域除外)。

    要通过 TWAIN 界面访问扫描仪,请查看 this question 了解我知道的所有普遍可用的选项。

    大多数其他事情将归结为自定义编程的 Active-X 和其他插件。我看过 SO 上讨论的商业条码扫描器插件,但现在找不到问题。

    【讨论】:

      【解决方案3】:

      可以在键盘和 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()
      

      【讨论】:

        【解决方案4】:

        根据您要执行的操作,Silverlight 和 Adob​​e 在此领域的能力都有限。网络摄像头、Silverlight 4.0 中的打印等。但是,这并非易事。 Silverlight 4.0 和 Flash 都支持条码扫描。

        【讨论】:

          猜你喜欢
          • 2016-09-14
          • 2012-03-12
          • 1970-01-01
          • 2014-02-06
          • 2016-07-31
          • 2019-05-23
          • 2014-10-05
          • 1970-01-01
          • 2016-02-23
          相关资源
          最近更新 更多