WindowsでCAPSLOCK機能を無効にする方法を探していました。残念ながら、すべての解決策は、それをNOTHINGまたは他のキーに再マッピングすることです。私はゲーマーであり、ゲーム内機能にCAPS LOCKキーを使用したいのですが、Caps Lockを使用した後にWindowsですべてを大文字にしたくありません(たとえば、WASDを使用して飛行するスペースFPSでターゲットを変更するためにCAPSロックを使用します) )。
例:
CAPS LOCKは、私のゲームの「ChangeTarget」にマップされています
Caps Lockを押すと、Windowsはこれから入力したすべてのテキストを大文字にします
ターゲットを撃ちますが、支援が必要なので、今すぐチャットに参加します。入力したいのですが、すべての文字が大文字になっています。
したがって、大文字のテキストを避けるために、もう一度CAPS LOCKを押しますが、ターゲットが変更されますが、通常のテキストで入力します。
では、CAPS LOCKキーを別のものに再マップせずに、Windowsの大文字化機能を無効にするトリックはありますか?
つまり、大文字のテキストを有効にせずに、ゲームなどで検出されるようにしたいのです。
希望する結果を達成する方法は1つありますが、それは理想的ではありません。実際のキーを再マップして、capslockの状態がキーに影響を与えないようにすることができます。言い換えれば、無視する capslock 修飾子。これは機能します(実際、私はこれを次のように書いています capslock ON 変更されたキーボード-しかしグリッチがあります-効果的に大文字の生成も無効にする場合 shift。そのために別のマッピングを作成する可能性はありますが、私が試したどのプログラムでも認識されません(レイアウトマッパーテスター自体を除く)。したがって、大文字を入力する必要があるときはいつでも、通常のキーボードレイアウトに切り替える必要があります( ctl+alt+digit ショートカット)-あまり便利ではありませんが、caps
の状態は変わりません!
MicrosoftキーボードレイアウトCreator 1.4 を使用してレイアウトを作成しました。
キーボードの偶数が実際にどのように処理されるかに関するいくつかの背景情報(soandosとの議論に追加するために:(簡略化):
キーを押すとスキャンコードが生成されます。このスキャンコードはWindows(キーボードドライバー)によって処理され、virtual key
に変換されます。次に、このvirtual key
(値)がアプリケーションに送信されます。ために capslockVC_CAPITAL
が送信されています(そしてゲームによって解釈されています)。仮想コードはまだ文字キーではありません。 VK_CODEを受信した後(そしておそらくそれに何らかの形で反応した後)、アプリケーションはOSに実際の文字コードを要求します。現在、どのコードがアプリケーションに返されるかは、OSが追跡するいくつかの要因に依存します-capslockステータスはそれらの1つです。これが、capslockがアプリ間で機能する理由です-アプリではなく(のみ)OSによって追跡されているためです。 詳細はこちら
あなたが求めていることは不可能です。ゲームがキーを検出すると、ゲームで必要な処理を実行できます(この場合は大文字のテキストを入力します)。ゲームのコードを変更せずにそれを変更する方法はありません。
拡張:
Caps Lockキーを押すことは、ほとんどの場合、ハードウェアの問題です(ライトが点灯する場合など)。その動作は、その時点で使用しているアプリケーションによってマッピングされます。あなたのゲームがそれを無視することに決めたなら、それは可能です。その後に入力したすべての文字を「A」にしたい場合は、それが可能です。この場合、Caps Lockキーがオンになっている場合は、規則に従い、文字を大文字にすることにしました。
ゲームを終了すると、ハードウェアの問題であるため、CapsLockキーは引き続きオンになります。 Windowsはそれを認識し、慣例に従い、文字を大文字にすることも決定します。