質問: windowsでcapslockを押している間に入力方法を切り替えることはできますか? linuxコンピューターで、caps lockキーを押したままにすると、キーボードが英語からセルビア語に切り替わります。たとえば、čを書くには、caps lockを押したまま、セルビア語キーボードのčが置かれているキーを押すだけです(この場合、キーは英語キーボードの;です)。 caps lockを放すと、キーボードが英語に「切り替わる」ので、;を押すと;私は得る;望んだ通りに。とても便利です。キーボードのレイアウトを変更する方法を知っていることに注意してください。 caps lockを修飾キーとして使用して、押し続けている間だけ言語を変更したい!windows7またはwindows8でこの動作を再現する方法はありますか?備考:これは「第3レベル」の文字切り替えと呼ばれることもあります(たとえば、shiftキーを押すと第2レベルになります)。私はcapslockに執着しているわけでもありません。他のキーでもかまいません。
回答: 私のテストで最も信頼できるautohotkeyスクリプトは次のとおりです。*capslock:: setkeydelay -1 ; if the destination key is a mouse button, setmousedelay is used instead. ;send {blind}{capslock downtemp} postmessage, 0x50, 0x02, 1,, a ; 0x50 is wm_inputlangchangerequest. 0x02 is forward return *capslock up:: setkeydelay -1 ; see note below for why press-duration is not specified with either of these setkeydelays. ;send {blind}{capslock up} postmessage, 0x50, 0x04, 1,, a ; 0x50 is wm_inputlangchangerequest. 0x04 is backward return 注:windowsのリージョン/言語のコントロールパネルで2つの入力言語を設定しておく必要があります。スタンドアロンの実行可能バージョン ここ 。スクリプトを停止するには、タスクバーのhを右クリックし、[一時停止/終了]をクリックします。caps lockの機能を維持したい場合(つまり、押すとcaps lockがオンになり、言語が変更されます。離すと前の言語に戻りますが、caps lockはオンのままになります)、最初の2つの;文字を削除するだけです。 2つのsend行のうち。私がこれをどれだけ速くタイプするかを見てください:;č;č;č;č;č;č;č;čかなり速いですよね?