アプリケーションを作成したい。 このアプリケーションは、ユーザーがキーボードの特殊キーを押すか、スクロールホイールを使用するか、何かをする必要があります。このアプリケーションはサービスです。窓はありません。他のアプリケーションで設計されたキーボードまたはマウスのイベントをキャッチしたい。
たとえば、サードパーティのアプリケーションでテレビを見ています。を押すと Ctrl + Shift
アプリケーションがスクロールホイールを使用して音量を変更します。
Windows 7 x64およびVisual Studio 2008を使用しています。
回答:
回答№1は4あなたは電話することができます SetWindowsHookEx() さまざまなイベントが発生したときに通知されます。おそらく、キーボードフックとマウスフックを使用して、マウスイベントを監視する必要があります。
回答№2の場合は3
アプリケーションが真のWin32サービスである場合、Vista以降では、アプリケーションはキーボードイベントまたはマウスイベントを受信しません。セキュリティホールを閉じるため(「粉砕攻撃」を検索)、Microsoftはすべてのサービスを隔離して、ユーザーとの対話を防ぎます。
対話的にログオンしたユーザーとのセッションでアプリケーションを実行する必要があります。
答え№3の2
RAW INPUTメソッドを使用できます。GetAsyncKeyStateなどよりも信頼性が高くなります。
私が書いた この記事 あなたに役立つかもしれないコードプロジェクトで。
C#とMASMの両方のソースコードバージョンが利用可能です。