2010-11-22 12 views
2

私は、押されているキーを待ち受けるC#でアプリケーションを書く必要があります。実際には、私はバーコードスキャナを "キーを押した"イベントを送信している、私はそれを聞く必要がある...そこから何をするのは私の質問の範囲を超えています。C#のWindowsサービスからキーイベントをキャプチャします

私のセキュリティ要件は、任意のサインオンマシンにどのような方法の形状やフォームとで、これはWindowsサービスとして実行しなければならないことを許可されていないがあることです。ユーザは、マシンを起動して歩き回る(すなわち、デスクトップセッションは行わない)。

私はこのために管理しなくてはならないと思っています。

これはセキュリティの要件を前提としていますか?もしそうなら、どこから始めるべきかの指針はすばらしいでしょう。事前に

おかげで、 ジェイ

+1

これは非スターターです。サービスデスクトップはインタラクティブデスクトップではなく、フックはデスクトップごとです。リスナープログラムを実行する自動ログオンアカウントを作成する必要があります –

答えて

0

あなたはOSの下位レベルで産生さ右のイベントを探す方法を学ぶの組み合わせでのPInvokeを習得する必要があります。 pInvokeを使用してuser32.dllを呼び出すと、マネージコードがフックを通じてこれらのイベントをフィルタリングできます。

http://pinvoke.net/default.aspx/user32.SetWindowsHookEx

0

あなたはすべてのアプリケーションのためのキーボードの押下を確認する必要がある場合は、システム全体のフックが正常に移動するための方法だろうが、問題がありますVistaやそれ以上のセキュリティーの変更により、フックはあまり役に立たないことになります。プロセスは、高い完全性レベルで別のプロセスをフックできないため、すべてイベントが表示されるという保証はありません。

しかし、特定のアプリケーション(バーコードを読み取るイベント)だけを見て、そのプロセスを特定できれば、スレッド固有のフックで十分であり、完全性に関する質問は発生しません。

関連する問題