は私がうまく、あるいは、例えば左のコントロールが押されていないときのWin32キーボードの管理は
WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP
ので、私は知っているメッセージを介してキーボードの状態を追跡入力マネージャを持って集中しました。 しかし、ウィンドウがフォーカスを失ってキーが再びフォーカスを得る前に離されると、「キーを離しました」というメッセージは表示されません。
これは誰もが常に持っている非常に面倒な問題のように思われるので、私は何かが欠けているように感じます。今すぐウィンドウがフォーカスを得たときにGetKeyboardState
を使用する修正があります。しかし、これはちょっと残酷すぎるように感じます。
今私は "LowLevelKeyboardProc"があり、これは単に常にキーを検出することでこれを解決するのに役立つことがわかりました。しかし、これを使用することにはいくつかの欠点があります(すべてのアプリケーションのすべての入力を遅くするような感じです)。
私が紛失している解決策がいくつかありますか?そうでない場合、どちらの方が良い方法でしょうか?
"*左のコントロールが押された時などは知っています。*"カスタム入力マネージャは必要ありません。代わりに 'Get(Async)KeyState()'を使ってください。 –
_(すべてのアプリケーションのすべての入力を遅くするのと同じですか?)_:誰もそのタイプをすばやく入力します; –
@remay 'GetAsyncKeystate()'はプログラムのコンテキストで動作します。独立したアクセスを2つの異なるスレッドに与える可能性はありますか?スレッドAがそれを呼び出す場合と同様に、Aによる最後の呼び出し(およびAのみ)は最後の呼び出しとしてカウントされます。 – Aedoro