私は Windows 7 を使用しており、異なる入力言語を切り替えるためのカスタム ホットキーを定義したいと考えています。
Ctrlこれらを+ Shift、Left Alt+ 、または重アクセントに変更できることは知っていますShiftが、どちらも好きではありません。入力言語を切り替えるためにCtrl+のようなものを定義する方法はあるのでしょうか?Space
答え1
Windowsはこれらのキーの変更をネイティブでサポートしていないと思います。とにかく、オートイットカスタム キー バインディングをリッスンし、定義済みのキーボード ショートカットの 1 つをプログラムでシステムに送信してキーボード レイアウトを変更するスクリプト。
;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift
HotKeySet("^{Space}", "change") ;Registers Control + Space
;Main loop
While 1
Sleep(100)
WEnd
;Changes Keyboard Layout
Func change()
Send ("{ALTDOWN}") ;Hold down Alt
Sleep(100) ;Wait 100 milliseconds
Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc
AutoItをダウンロードしてインストールするだけです(このリンクダウンロードしてインストールするには、このファイルをダウンロードしてインストールし、拡張子の付いたファイルを作成します.au3
。上記のコードをコピーして貼り付け、保存します。ログイン時にこのファイルを開く場合は、スタートアップ フォルダーに配置できます。
答え2
上記のスクリプトは私には機能しませんでしたが、修正したら機能するようになりました。
#Include <Misc.au3>
;~ #RequireAdmin
;^ = Ctrl
;! = Alt
;# = WinKey (Meta)
;+ = Shift
HotKeySet("^{Space}", "change") ;Registers Contorl + Space
$dll = DllOpen("user32.dll")
ToolTip("Try to use ^Space"&@CRLF&"!!!!!!!!!!!!!!!!!!!")
Sleep(3000)
ToolTip('')
;Main loop
While 1
Sleep(100)
WEnd
;Changes Keyboard Layout
Func change()
While _IsPressed("11",$dll)
Sleep(10)
WEnd
Send ("{ALTDOWN}") ;Hold down Alt
Sleep(100) ;Wait 100 milliseconds
Send("{LSHIFT}{ALTUP}") ;Press Left-Shift and release Alt
EndFunc
答え3
Windows 7 では、コントロール パネル\地域と言語\キーボードと言語で、「キーボードの変更」を選択します。小さなポップアウト ウィンドウが表示されます。そこで「キーの詳細設定」を選択すると、各ターゲット キーボードを直接取得するための組み合わせや、一般的な切り替えキー シーケンスを設定できます。
答え4
代替回答
2 つのキーボード レイアウトの記号がそれほど違わない場合は、AutoHotKey などのユーティリティを使用して、外国語の Alt 修飾子 (たとえば、ドイツ語キーボードの Alt レイヤーに標準の US レイアウト記号) を追加できます。
または、OSのキーマップそれがより正しいやり方です。
- 切り替える必要がなく、どの言語がアクティブになっているか迷うことがない(非常に気が散る可能性がある)
- Alt レイヤーに頻繁にアクセスすると、フローが遅くなる可能性があります。
一部のヨーロッパ言語では、レイヤーを作成する代わりに、文字を永続的に移動することができます。
たとえば、[] と {} を () の Alt/Shift キーの組み合わせに、[];:'" を üäö の近くのキーに配置すれば、コーディング用にほぼ通常の米国レイアウトを維持しながら、言語の文字が通常配置される場所にスペースを確保できます。