web-dev-qa-db-ja.com

Windows7で入力言語を切り替えるためのホットキー

Windows 7を使用していますが、異なる入力言語間で変更するカスタムホットキーを定義したいと思います。

私はそれらをに変更できることを知っています Ctrl+Shift、 Left AltShift またはアクサングラーブですが、どちらも好きではありません。 SOのようなものを定義する方法はありますか? CtrlSpace 入力言語を切り替えるには?

10
Fynn

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のファイルを作成します。上記のコードをコピーして貼り付け、保存します。ログイン時にファイルを開きたい場合は、このファイルをスタートアップフォルダに置くことができます。

3
fardjad

上記のスクリプトは私には機能しませんでしたが、私はそれを変更しました、そして今それは機能します。

#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
Sergey Erokhin

Windows 7では、[コントロールパネル]\[地域と言語]\[キーボードと言語]で、[キーボードの変更]を選択します。小さなポップアウトウィンドウが表示されます。そこでは、「高度なキー設定」を選択しました。これにより、各ターゲットキーボードを直接取得するための組み合わせと、一般的な切り替えキーシーケンスを設定できます。

1
Aganju

代替回答

2つのキーボードレイアウトに多くの記号の違いがない場合は、AutoHotKeyなどのユーティリティを使用して、外国語のAlt修飾子(たとえば、ドイツ語キーボードのAltレイヤーにある標準のUSレイアウト記号)を追加できます。

または、OSのキーマップを作成します。これがより正しい方法です。

  • どの言語がアクティブであるかを切り替えて疑問に思う必要はありません(非常に気が散ることがあります)
  • altレイヤーに頻繁にアクセスする可能性があり、これによりフローが遅くなります。

一部のヨーロッパ言語では、レイヤーを使用する代わりに、文字を永続的に移動できます。

たとえば、[]と{}を()と[];: '"のAlt/Shiftコンボに、üäöの近くのキーに使用すると、コーディング用にほぼ通常の米国のレイアウトを維持し、その場で言語の文字用のスペースを確保できます彼らが通常住んでいる場所。

0