• 締切済み

バーコードによる入力を区別したい

いつもお世話になっております。 blue-horse と申します。 画面上(テキストボックス上でなく)でバーコード入力を検出し、 その内容が定められた字数ならば、定めた処理を行うようにしたいと考えています。 具体的には、バーコード入力による画面遷移です。 例:001 -> 画面A、002 -> 画面B、... バーコードはCode39 スタート/ストップ文字は* body要素でkeypressイベントをキャッチし、スタート/ストップ文字を検出できるかと考えましたが、スタート/ストップ文字はバーコードリーダーが認識するために利用されるだけなので、PCには出力されないようで、いきなりバーコードの値から取得し始めてしまいました。 また、テキストボックスなどで上記の例と同様の入力内容が発生する可能性があるので、charCodeをプールして、特定パターンが発生したらバーコード入力と判断させようとすると、不具合が発生します。 このため、入力がキーボードからなのか、バーコードからなのかを認識することが出来ません。 入力デバイスの位置づけを考えれば当然と言えば当然な話なのですが、どうにかして実現したいと考えています。 何か良い方法、ライブラリ等は無いでしょうか。

みんなの回答

回答No.1

keypressが発生せずにvalueの値が変わった場合はバーコードからの入力と見なすとか。 チェックするタイミングはonblurかタイマーになると思います。 ただし、マウス操作でのコピーペーストでもkeypressを発生させずにvalueが変えることが出来ます。 (というよりも、キーボードからの入力か、マウス操作での入力かを判断するために使っている方法です) 可能ならバーコードリーダーの制御ソフトから何らかの呼び出しを行う方が確実だとは思います。

blue-horse
質問者

お礼

taloo 様: 回答ありがとうございます。 お礼つけるの遅くなりまして申し訳ございません。 >keypressが発生せずにvalueの値が変わった場合はバーコードからの入力と見なすとか。 input 要素があるとは限らない状態で実現したいので、body要素で入力を検知させたいのですが、body要素にも入力内容を受け取るvalue属性があるのでしょうか。 あるいは、hidden等で隠し要素に入力値を強制的に放り込む等の手段をとるのでしょうか。 勉強不足にて申し訳ございませんが、そのあたりの実現方法について、追加解説を頂けると嬉しいです。

関連するQ&A

  • EXCEL VBA バーコード入力

    よろしくお願いします EXCEL(2013) VBAにてバーコードによる入力を作成しているのです。 バーコード情報例 2023○123456789-ECCW○○○○○○●●1 バーコード情報を仕入情報5桁 品番情報20桁 数量情報3桁 下記○●箇所は品番、数量情報桁数が変わる為ブランクで設定しています。 バーコードリーダで読込を行ったときに テキストボックス1にカーソルがあり テキストボックス1に 2023 テキストボックス2に 123456789-ECCW テキストボックス3に 1 以上が入力されて テキストボックス4にカーソルが移動して次の 読込が出来るようにしたいので 色々調べましたが検索ヒントが悪いのか 中々目的のやり方が見つかりません。 ご教示いただけますと助かりますので よろしくお願いいたします。

  • バーコードの入力チェック方法を教えてください

    パソコンでバーコードから文字を入力するときは通常、そのままテキスト文字としてそのまま出てきます。(バーコードの設定で、入力後、自動的に改行が入るように設定しております) ただ、ある文字(ここでは010180005)を読み取らせようとしたらその文字が出てきた途端すぐ消えてしまいました。 つまり、入力したくてもなぜかBSで勝手に消されてしまう感じです。 メモ帳で確認すると 「010180005」を読み取ったはずが、メモ帳にある文字全て消されてしまいます。 また、「010180013」を読み取ると、読み取れるものの、その途中で「印刷中」というダイアログボックスが一瞬出てくるのが見えました。 別途、SAKURAエディタで試すと、 「010180005」を読み取ったはずが、「0101800」と最後の1文字が消えていました。 「010180013」の方は読み取ると、読み取れるものの、 メモ帳と同じ現象で一瞬「印刷中」というダイアログボックスが一瞬出てくるのが見えました。 もし文字コードを表示できるツールをご存知であれば、教えてください。 よろしくお願いいたします。

  • accessのバーコードについて

    アクセスのバーコードのNW-7を使っています 初めと終わりにスタート、ストップ文字を入れてみました それで、フォームでバーコードリーダーでスキャンしてみると 例として a000001112aと 最初と最後にaという文字が出てしまします これでは、aが邪魔して数字が合致しません このaという文字が表示されない方法ご存じであれば ご教示のほどよろしく願いします

  • バーコードの入力エラー

    パソコンでバーコードから文字を入力するときは通常、そのままテキスト文字としてそのまま出てきます。 ただ、ある文字(ここでは010180005)を読み取らせようとしたらその文字が出てきた途端すぐ消えてしまいました。 つまり、入力したくてもなぜかBSで勝手に消されてしまう感じです。 これはあり得ることでしょうか?

  • accessでバーコード作成

    マイクロソフトアクセスで、バーコードを作成したいのですが、やり方を教えていただきたいです。 バーコードコントロールで、バーコードを表示し、コントロールソースに入力・・・までは行ったのですが、印刷してみるとどうしてもバーコードリーダーで読んでくれません。 キャラクタはアルファベットと数字なのでCODE39にしました。 インターネットで調べたところ、スタート・ストップキャラクタを付加すると書いてありましたが、意味がわかりません。 宜しくお願い致します。

  • Adobe AIR でバーコード入力時に、先頭文字が欠落します

    blue-horseと申します。 いつもお世話になっております。 下記内容で困っております。 ご助言頂ければ有り難く存じます。 困っている事: バーコードリーダーで読み取った内容の先頭1文字が欠落する。 状況詳細: 1)Adobe AIR(HTML + JavaScript)でアプリケーションを製作中です。   Eclipse + Aptana   使用ライブラリはJQuery1.3.2のみ 2)フォームのテキストボックスにバーコードで読み取った内容を格納させようとしているのですが、先頭1文字目が欠落します。 3)欠落するのは、先頭1文字目のみです。 4)前の入力を残したまま2回目を読み込めば、2回目は正常に入力されます。   例:読み取り対象「ABC」     1回目->失敗[BC]     2回目->成功[BCABC](※前の入力を残したまま2回目を読み込む)     3回目->失敗[BC](※前の入力をBackspaceで消去して、再入力) 5)作成したHTMLをAIRでなくIEで起動すると、問題なしです。   AIR固有の問題? 6)読み取り内容を1文字ずつ出力するタイプのバーコードリーダーだと問題なし。   ※問題が発生するバーコードリーダーは読み取り内容を一気に流し込んでくるタイプ。    keypressイベントのみが連続していました。    1文字ずつ出力するタイプは律義にdown->press->upを繰り返し。 7)毎回「必ず」現象発生するわけではない。   上手く読み取れる場合も「たまに」あります。   が、成功時と失敗時の状況的差異が判りません。 状況が安定しないので、原因究明もままなりません。 検証方法のアドバイス等ございましたら、ご助言下さい。 解決策の提示があれば、なお有り難いです。 毎回妙な質問ばかりですが、お助け頂ければ有り難く存じます。 以上、失礼いたします。

  • 紙の上の、手書き文字と、バーコードをペンタイプスキャナーのような装置で入力、認識したい

    紙の上の、手書き文字と、バーコードをペンタイプスキャナーのような装置で入力、認識したいと思っております。 手書きは数字のみです。数字部分とバーコード部分をペンのようなスキャナーで入力して、コード化したいのですが、このようなペンタイプスキャナーはありますでしょうか?

  • バーコード入力と手入力の判断はつくのでしょうか?

    はじめまして、表題の質問をさせていただきます。 現在とある機械を管理するプログラムを作成しています。(JDK1.6) 分かりづらいので例えるならば図書館でやっている本の登録、貸出みたいなことです。 そこで質問なのですが、本に貼ってあるバーコードを読んだときにそれが手入力なのかバーコードリーダーから読まれたデータなのかを判別する手段はあるのですが? (不正防止のため手入力は一部の管理者のみ認め、一般ユーザーはバーコードのみとしています) JTextFieldのKeyReleaseイベントだと1文字づつイベントが発生し、ActionPerformedだと1度だけイベントが発生することが分かったのですがそれを組み合わせても判断はできないと思います。 また、JFrameのKeyReleasedイベントで取得してJTextFieldにセットすることを考えたのですが、配下の全コンポーネントのfocusableをfalseにセットしないとJFrameのKeyReleasedイベントが発生しないし、やはりJFrame上でも手入力とバーコードリーダーの判断がつきません。 何か解決策があればご教授願います。

  • バーコード読み取り

    vb.net2010の環境です。 バーコード読み取りを実装するのですが 読み取り機能の実装方法を教えてください。 読み取ったテキストデータを特定のテキストボックスに 表示するというシンプルな機能です。 専用のコンポーネントとか必要なのでしょうか? またバーコードリーダーの機種とかUSB接続かどうかとか 気にする必要あるでしょうか?

  • Excelでバーコードコントロールを使用したい

    Excel2013でバーコードコントロール15.0を使用し セル(A4)に商品名15桁+数量4桁+シリアルNo.8桁(合計27文字)を Code128でバーコードにする必要があります。 例)A1【商品名】ABC01 A2【数量】1個 A3【シリアルNo.】00000001 B1【商品文字数】=LENB(A1) B2【数量桁数】=LENB(A2) B3【シリアル桁数】=LENB(A3) A4【バーコード内容】=A1&REPT(" ",15-B1)&REPT("0",4-B2)&A2&REPT("0",4-B3)&A3  希望の表示はA4のセルで   ABC01 000100000001 上記の空白部分、判り難いとは存じますが、10文字の空白です。 値としては表現できるようですが、バーコードコントロールの プロパティでLinkedCellをA4にしてもバーコードが生成されません。 そもそもの使い方が間違っているのでしょうか? スタートコード、チェックデジット、ストップコード等 http://www.kishugiken.co.jp/reading/barcode/barcode4.html ここで書いている事が、私には理解できずにいます。 ご教授下さいます様、お願い申し上げます。