Windows 7 で入力言語を切り替えるホットキー

Windows 7 で入力言語を切り替えるホットキー

私は Windows 7 を使用しており、異なる入力言語を切り替えるためのカスタム ホットキーを定義したいと考えています。

Ctrlこれらを+ ShiftLeft 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 キーの組み合わせに、[];:'" を üäö の近くのキーに配置すれば、コーディング用にほぼ通常の米国レイアウトを維持しながら、言語の文字が通常配置される場所にスペースを確保できます。

関連情報