金高真悟の奇天烈(キテレツ)大百科

日々徒然なるままに

株式会社ニコシスの新入社員が毎日のあれやこれやを語ります。

Windowsって大変!!と感じるのは、キテレツが知らないことが多いから・・だな。(´д`ι)

情報収集に明け暮れた一日

こんばんは。
キテレツです。

今日のキテレツは・・・・昨日からみょーーーーに調子が悪く。。。(´д`ι)
気合で乗り切った一日です。
明日、回復できるように行動しなければ。

情報収集

です。
何かと申しますと

(´・ω・)ノ 「バーコードリーダーとのHID通信とシリアル通信の仕組みと方法」

についてです。
どちらかと言うと、キテレツの大好物な分野ですね。
HID通信については初めてなのでどうやるのか興味津々です。
シリアル通信は・・・まぁ、だいたい想像は付く感じです。

HID通信は結構難しそう

そもそものやりたい事ですが

  1. ExcelとかWord使ってても、バーコードでQRコードを読み込んだら自作アプリが起動する
  2. 自作アプリ上にQRコードのデータを表示する

というのが大きな目的です。
この、「ExcelとかWord使ってても」という部分がくせ者ですね。
つまり、どうにかしてバックグラウンドでバーコードリーダーのスキャンを検出しなければなりません。
※これって運用サイドで「バーコードリーダー使うときは、アプリをアクティブにする」って運用をしてくれたら必要なくなるんですが・・・

サービスアプリとかバックグラウンドとか

よくわからない単語と仕組みが出てきました。
しっかり理解して使わないと、デバッグできないとか何が正しいのかわからないとか、、、迷宮入りしそうな雰囲気を感じます。

Windows7でハードウェア割り込み

を自由に設定することは出来ないんですね。
ハードウェアの全てはWindows7が管理しているので。(MS-DOSの頃は自由にできたそうです)
マイコンのように、「割り込みベクタに対して割り込み信号アドレスを割り当ててメモリフック」ってテクニックは不可能です。
※頑張ればできるみたいですが、イレギュラーに近い方法のようなので採用したくありません。

VisualStudioでC#開発

を行います。
C#Windowsのイベント(コンポーネント)を拾えるかどうかって所からスタートですね。
基本的な構造とか色々調べないといけません。
ソレがわかってないとソフト書けません。

キーボードを2つ接続したのと同じ状況になる

というのもポイントです。
HIDプロトコルバーコードリーダーを接続した場合、それはWindowsから見たらキーボードが接続されているとみなされるようです。
と言うことは・・・接続されているキーボードの種別を判定!?して、バーコードリーダー側のキーボードが反応したことを検出しなければなりません。

それも、バックグラウンドで・・・・
なかなかにハードル高そうです。