2

そうです、私はまだこれをコーディングする必要はありませんが、これが私の計画です:

  1. ユーザーは一意の ID が記載された RFID カードをスキャンします
  2. IDはキーボード入力のように読み取られます
  3. IDはDB/フラットファイルに関連付けられ、関連情報が取得されます

これはかなり簡単で、これを行うことができます.RFIDリーダー(キーボードウェッジ)が取り付けられたUSBポートからだけでなく、キーボードからのような他の入力が読み取られないようにするにはどうすればよいか疑問に思っています.

どんな助けでも大歓迎です。

ありがとう、

ニック

4

2 に答える 2

5

RawInputを使用して、複数のデバイスからの入力を区別できます。diffrenetデバイスに固有のデバイスVendorIDとProductIDを取得できますが、同じデバイス(2つの同一のキーボードなど)でも同じですが、デバイスGUIDも提供します(システムでは、私が理解しているように、システムに固有です。 this)と、2つの同一のデバイスからでも入力を区別するのに役立つその他のデータ。

RFIDスキャナーのVID&PIDを取得し、すべての入力メッセージをそれと比較して、デバイスからシンボルのみを取得することができます。

さらに、RFIDスキャナーはデータを非常に高速に入力すると思います。そのため、VIDとPIDのペアを知らなくても、シンボルのストローク全体を入力するために使用された時間を測定し、RFIDスキャナーとキーボードを区別できます。

不要な入力を削除するには、ウィンドウフックを使用できます。

ほとんど忘れられていましたが、マイクロソフトはPOSデバイス用のフレームワークを開発しましたが、それは.NET用であり、POSfor.NETと呼ばれています。多分それは助けになるでしょう、私の場合、私はそれを使うことができません。

PS:私は現在このパズルを自分で解決していますが、バーコードスキャナーを使用しています(VID&PIDを知らずにバーコードスキャナー入力を読み取る

于 2012-10-18T13:08:14.207 に答える
1

私が働いている会社のRFIDリーダーにも同じ問題があり、rfidカードIDを取得するためのライブラリを作成しました。ライブラリがオープン ソース (LGPL ライセンス) になった今、それはあなたの問題に対する答えと見なすことができると思います。Ivan0x32 で提案されているように RawInput を使用し、必要に応じて偽装を使用して現在アクティブなコンソールでフック プロセスを開始します (Windows サービスを開発している場合は、セッション 0 の分離のため)。LibLogicalAccessプロジェクトに移動し、「キーボード」リーダーを探します。

于 2013-05-09T14:27:38.977 に答える