ブラウザからクライアント PC 上のデバイス (バーコード リーダー、スキャナなど) にアクセスするには、どのような方法がありますか? ユーザーがプラグインを必要とする場合があることを理解しています。これらのデバイスには、そのデバイスに固有の API がある場合があります。利用可能であれば、API を活用したいと思います (Java、C、コマンド ラインなど)。
4 に答える
署名されたJava アプレットは、プラットフォームに依存せずにほとんどのものにアクセスできます。ユーザーは Java をインストールし、署名付きアプレットの実行を許可する必要があります。
NSAPIへのプラグインを作成すると、プラグインがインストールされると、基本的にユーザーがアクセスできるすべてのものにアクセスできるようになります。もちろん、プラグインをインストールする必要があります。
Flash は、デバイスへの非常に多くのアクセスを提供します。
これは些細なことではなく、標準化されたAPIもありません(InternetExplorerに限定されているJScript/ ActiveX領域を除く)。
TWAINインターフェースを介してスキャナーにアクセスするには、この質問をチェックして、私が知っているすべての一般的に利用可能なオプションを確認してください。
他のほとんどのものは、カスタムプログラムされたActive-Xおよび他のプラグインに依存します。SOで議論されている市販のバーコードスキャナープラグインを見たことがありますが、現在質問を見つけることができません。
多くのバーコード リーダーをキーボードと PC の間に挿入できるため、スキャンされたバーコードは直接キーボード バッファーに送られます。その他のデバイスは、シリアル ポートに接続するか、シリアル ポートをエミュレートするドライバを備えています。次の Python コードは、実際の COM ポートまたは仮想 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 はどちらもバーコード スキャンをサポートしています。