4 返信 最新の回答 日時: Jan 30, 2010 2:19 AM ユーザー:taka433ki

    iSightでバーコードスキャナ

    jyuu

      タイトル

      iSightでバーコードスキャナ

      フォーラムに投稿

      Bookpedia(www.bruji.com/bookpedia/)

      のように、iSightやwebカメラをバーコードスキャナにして

      ファイルメーカーにバーコードを読み込ませたいのですが、

      そのような事は可能でしょうか?

       

      素人の妄想では、Barcode scanner(www.bruji.com/cocoa/barcode.html)を

      利用すれば、なんとかなりそうな気がするのですが、私にはそこから先の知恵がありません。。。 

       

      上手く読み込めたら、「MacBookで簡易移動POS」や「MacBook とバーコードで在庫管理」などが

      作れて面白そうだなと思ってます。 

       

      非常にざっくりした質問で申し訳ありませんが、よろしくお願いします。 

        • 1. Re: iSightでバーコードスキャナ
          user6776
            

          「MacBookで簡易移動POS」や「MacBook とバーコードで在庫管理」として使うなら、

          Mac対応のバーコードリーダーを使ってもよさそうなんですが、それではダメでなんでしょうか?

           

           

          • 2. Re: iSightでバーコードスキャナ
            jyuu
              

            レスありがとうございます。

             

            >「MacBookで簡易移動POS」や「MacBook とバーコードで在庫管理」として使うなら、

            >Mac対応のバーコードリーダーを使ってもよさそうなんですが、それではダメでなんでしょうか?

             

            確かに専用のバーコードリーダーを使えばよいのですが、

            せっかくMacに内蔵されているので、iSightでバーコード認識できれば

            追加投資がいらないし、スペース的にも有利かなと思ったもので。

            やはり難しいですね。

            • 3. Re: iSightでバーコードスキャナ
              taka433ki
                

              シェアウェアですが、evobarcode (ttp://www.evological.com/evobarcode.html)
              とapplescriptを組み合わせる事により、構築可能だと思います。
              読み込み時にapplescriptを起動出来るようですので、読み取ったデータを任意のフィールドに流し込めば、いけると思います。

              スクリプトエディタで以下のコードをコピペして実行形式で保存し、evobarcodeがバーコードを読み込んだときにそのスクリプトを起動するように設定します。


              tell application "EvoBarcode" to activate
              tell application "System Events"
              if (system attribute "sysv") 4144 or UI elements enabled then
              tell application process "EvoBarcode"
              get value of text field 1 of group 1 of window "EvoBarcode Scanner"
              end tell
              tell application "FileMaker Pro"
              set cell "任意のフィールド" of current record to result as string
              end tell
              tell application process "EvoBarcode"
              set value of text field 1 of group 1 of window "EvoBarcode Scanner" to ""
              click menu item "Hide EvoBarcode" of menu 1 of menu bar item "EvoBarcode" of menu bar 1
              end tell
              else
              tell application "System Preferences"
              activate
              set current pane to pane "com.apple.preference.universalaccess"
              beep
              display dialog "GUI Scripting is not enabled." & return & return & "Check \"Enable access for assistive devices\" in the Universal Access preference pane (authentication is required), then run this script again." with icon stop buttons {"OK"} default button "OK"
              end tell
              end if
              end tell


              任意のフィールドには入力したいフィールド名を入れ替えて使用してください。
              連続してスキャンしたい場合は click menu item "Hide EvoBarcode" of menu 1 of menu bar item "EvoBarcode" of menu bar 1 の部分を消去すると、evobarcodeが背後に回らず、入力できます。
              使用方法としてはボタンにて新規レコードを作成した後、appleiventでアプリケーションを前に出すとよいと思います。

               

              追記 このapplescriptを使用する場合、システム環境設定のユニバーサルアクセスの(補助装置を使用可能にする)をONにしてください。 

              にtaka433kiにより編集されたメッセージにtaka433kiにより編集されたメッセージ















              • 4. Re: iSightでバーコードスキャナ
                taka433ki
                  

                すみません。上記のスクリプトで実際に試してみましたが、起動しませんでした。

                訂正致します。

                 

                local X

                on scan(barcode)

                set X to barcode

                tellapplication "FileMaker Pro"

                set cell "任意のフィールド名" of current record to X

                end tell

                end scan

                 

                以上のコードで動作確認致しました。

                しかしながら内蔵iSightではオートフォーカスが機能しないため、接写用のレンズがないと難しいかもしれません。

                私は100均のルーペを接着し接写できるようにしています。