2010-02-01 148 views
5

從瀏覽器訪問客戶端PC上的設備(條形碼閱讀器,掃描儀等)的各種方法有哪些?我意識到我的用戶可能需要一個插件。這些設備可能具有特定於其設備的API;如果可能,我想利用它們的API(也許Java,也許C,也許命令行)。如何從瀏覽器訪問客戶端PC上的設備

+0

我見過的每款條形碼掃描器都可以作爲鍵盤使用,所以它可以在任何地方使用鍵盤,而無需額外的設置。 – 2010-02-01 18:13:07

+0

這些設備與掃描儀相比更像條形碼閱讀器。 – Upperstage 2010-02-01 18:14:44

回答

5

A signed Java applet可以獨立於平臺訪問大多數事物。用戶必須安裝Java,並且必須允許簽名的小程序運行。

如果你編寫插件到NSAPI,一旦他們安裝了它,你就可以訪問用戶可以訪問的任何東西。當然,他們必須安裝插件。

Flash提供了相當多的設備訪問權限。

+0

很好的回答;謝謝。 – Upperstage 2010-02-01 18:13:29

1

這不是一件簡單的事情,它沒有標準化的API(除了可能在限於Internet Explorer的JScript/ActiveX區域中)。

要通過TWAIN界面訪問掃描儀,請查看this question瞭解我所知道的所有常用選項。

大部分其他事情都歸結爲自定義編程的Active-X和其他插件。我已經看到了SO上討論過的商業條碼掃描器插件,但現在找不到問題。

+0

NSAPI非常標準。 – 2010-02-01 18:12:07

+0

很好的鏈接,謝謝。 – Upperstage 2010-02-01 18:12:22

1

許多條形碼閱讀器可以插在鍵盤和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() 
0

根據你想要做的事情,Silverlight和Adobe在這個領域都有一些有限的能力。 WebCams,在Silverlight 4.0中打印等等。但是,這並不重要。 Silverlight 4.0和Flash都支持條形碼掃描。

相關問題