CapsLockキーをWindowsのコントロールキーとして機能させるプログラムを開発しています。私はこれがレジストリの変更で簡単にできることを理解しています。残念ながら、私はそのレジストリの変更を実行することはできませんし、デバイスドライバを実行することもできません。仮想キーボードバッファにKEYEVENTF_KEYUPを送信した後に物理的なCapsLock位置を検出します。
私の考えは、バーチャルキーボードの上に来るキーカンを見ることです。 CapsLockダウンイベントが表示されたら、CapsLock Upイベント、2回目のCapsLockダウンイベント、2回目のCapsLock Upイベント、次にコントロールキーダウンイベントを送信します。このコードはすべて動作します!しかし、私はCapsLockキーの物理的なUPアクションを捕まえることができませんでした。
私はwin32api.GetKeyState()
とwin32api.GetAsyncKeyState()
の両方のCapsLock Upキーを試してみました。私がCapsLock upイベントを詰めた後、彼らは両方ともキーがアップしていると言っています。実際のハードウェアを見て、それがまだダウンしているのを見る方法はないようです。
仮想キーボードバッファに移動する前にイベントをキャッチする方法はありますか?もし私がそれをすることができれば、REAL CapsLock downイベントとUpイベントを捕まえることができました。しかし、私はそれを見つけるように見えることはできません。
私はこれをwin32 APIから完全に行うことができる必要があります。
実際に使用している言語は問題ではありません。これはWIN32API呼び出しであるためです。この場合、言語はPythonですが、APIはC、C++、C#、アセンブラ、パスカル、およびWindows上で実行されるその他すべての言語でも使用できます。 – vy32
'WM_KEY(DOWN | UP)'ウィンドウメッセージを処理するか、 'SetWindowsHookEx()'を使ってキーボードフックを書く。 –