Windows 7を使用していますが、異なる入力言語間で変更するカスタムホットキーを定義したいと思います。
私はそれらをに変更できることを知っています Ctrl+Shift、 Left Alt + Shift またはアクサングラーブですが、どちらも好きではありません。 SOのようなものを定義する方法はありますか? Ctrl + Space 入力言語を切り替えるには?
Windowsはこれらのキーの変更をネイティブにサポートしていないと思います。とにかく、 AutoIt スクリプトを記述して、カスタムキーバインディングをリッスンし、プログラムで事前定義されたキーボードショートカットの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
のファイルを作成します。上記のコードをコピーして貼り付け、保存します。ログイン時にファイルを開きたい場合は、このファイルをスタートアップフォルダに置くことができます。
上記のスクリプトは私には機能しませんでしたが、私はそれを変更しました、そして今それは機能します。
#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
Windows 7では、[コントロールパネル]\[地域と言語]\[キーボードと言語]で、[キーボードの変更]を選択します。小さなポップアウトウィンドウが表示されます。そこでは、「高度なキー設定」を選択しました。これにより、各ターゲットキーボードを直接取得するための組み合わせと、一般的な切り替えキーシーケンスを設定できます。
代替回答
2つのキーボードレイアウトに多くの記号の違いがない場合は、AutoHotKeyなどのユーティリティを使用して、外国語のAlt修飾子(たとえば、ドイツ語キーボードのAltレイヤーにある標準のUSレイアウト記号)を追加できます。
または、OSのキーマップを作成します。これがより正しい方法です。
一部のヨーロッパ言語では、レイヤーを使用する代わりに、文字を永続的に移動できます。
たとえば、[]と{}を()と[];: '"のAlt/Shiftコンボに、üäöの近くのキーに使用すると、コーディング用にほぼ通常の米国のレイアウトを維持し、その場で言語の文字用のスペースを確保できます彼らが通常住んでいる場所。