2017-07-05 4 views
-1

Win Apiでキーボードを操作する方法は?私は、これらのもののために特定のキーボードキーを確認する必要があります:ホールド、押し、リリース。私はWindowsメッセージを使用することはできません、Win APIの機能だけです。私はすでにチェックを保留しました:Win Apiでキーボードを操作する

bool result; 
result=false; 
if(GetAsyncKeyState(MapVirtualKey(code,MAPVK_VSC_TO_VK))==-32767) result=true; 
return result; 

私はプレスとチェックリリースをチェックできますか?

プレスは単なるキーダウンです。キーの押下後にキーアップがリリースされる

+2

あなたが達成しようとしていることについて詳しく教えてください。答えはこの情報に大きく依存します。 –

答えて

0

通常のアプリケーションでは、独自のウィンドウで入力を処理するときに、キーとcharメッセージを使用する必要があります。

キーボードイベントをスレッドまたはシステム全体で追跡する必要がある場合は、low-level keyboard hookを使用する必要があります。

GetAsyncKeyStateは、時間の経過とともにキーの状態を追跡するのに最適なAPIではなく、現在の状態を報告します。あなたはタイトなループでそれをポーリングすることはできず、キーイベントを逃さないことを保証します。 < 0チェック(または& 0x8000)を使用して、キーがダウンしているかどうかを確認してください(==ではなく)。

GetKeyStateは、入力メッセージを処理するときにCtrl/Shift/Altの状態を確認する必要がある場合に便利です。

+0

私はWM_KEYDOWNとWM_KEYUPメッセージでキーボードチェックを行っていました。 –

関連する問題