/ /キーボードイベントとマウスイベントをキャッチする方法は? -C ++、windows、winapi

キーボードとマウスのイベントを捕まえるには? - c ++、windows、winapi

アプリケーションを作成したい。 このアプリケーションは、ユーザーがキーボードの特殊キーを押すか、スクロールホイールを使用するか、何かをする必要があります。このアプリケーションはサービスです。窓はありません。他のアプリケーションで設計されたキーボードまたはマウスのイベントをキャッチしたい。

たとえば、サードパーティのアプリケーションでテレビを見ています。を押すと Ctrl + Shift アプリケーションがスクロールホイールを使用して音量を変更します。

Windows 7 x64およびVisual Studio 2008を使用しています。

回答:

回答№1は4

あなたは電話することができます SetWindowsHookEx() さまざまなイベントが発生したときに通知されます。おそらく、キーボードフックとマウスフックを使用して、マウスイベントを監視する必要があります。


回答№2の場合は3

アプリケーションが真のWin32サービスである場合、Vista以降では、アプリケーションはキーボードイベントまたはマウスイベントを受信しません。セキュリティホールを閉じるため(「粉砕攻撃」を検索)、Microsoftはすべてのサービスを隔離して、ユーザーとの対話を防ぎます。

対話的にログオンしたユーザーとのセッションでアプリケーションを実行する必要があります。


答え№3の2

RAW INPUTメソッドを使用できます。GetAsyncKeyStateなどよりも信頼性が高くなります。

私が書いた この記事 あなたに役立つかもしれないコードプロジェクトで。

C#とMASMの両方のソースコードバージョンが利用可能です。