Горячая клавиша для переключения языка ввода в Windows 7

10

Я использую Windows 7, и я хотел бы определить пользовательскую горячую клавишу для переключения между различными языками ввода.

Я знаю, что могу поменять их на Ctrl+ Shift, Left Alt+ Shiftили серьезный акцент, но мне не нравится ни один из них. Так есть ли способ определить что-то вроде Ctrl+ Spaceдля переключения языка ввода?

Fynn
источник

Ответы:

3

Я думаю, что Windows изначально не поддерживает изменение этих ключей. В любом случае вы можете написать скрипт AutoIt для прослушивания пользовательских привязок клавиш и программно отправить один из предопределенных сочетаний клавиш в систему для изменения раскладки клавиатуры.

;^ = 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расширением. Скопируйте и вставьте код выше и сохраните его. Вы можете поместить этот файл в папку «Автозагрузка», если хотите, чтобы он открывался при входе в систему.

fardjad
источник
3

Сценарий выше не работает для меня, но я изменил его, и теперь он работает.

#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
Сергей Ерохин
источник
1

В Windows 7 в разделе «Панель управления \ Регион и язык \ Клавиатуры и язык» выберите «Изменить клавиатуру». Вы получите небольшое всплывающее окно; выбрал «Advanced Key Settings», который позволяет вам задавать комбинации для прямого доступа к каждой целевой клавиатуре, а также общую последовательность клавиш переключения.

Aganju
источник
2
Проблема в том, что он предлагает только 3 варианта, один из которых не находится на одном и том же ключе в обоих макетах ... Другой вариант - установить разные ключи для каждого языка, но для этого требуется комбинация модификаторов. Не идеально.
Хенрик Эрландссон
0

Альтернативный ответ

Если две раскладки клавиатуры не отличаются по многим символам, вы можете добавить Alt-модификаторы для иностранного языка (скажем, стандартные символы раскладки США на слое Alt немецкой клавиатуры) с помощью такой утилиты, как AutoHotKey или аналогичной.

Или создайте таблицу ключей для ОС, которая является более правильным способом сделать это.

  • никогда не нужно переключаться и задаваться вопросом, какой язык активен (может быть очень отвлекающим)
  • вы можете часто получать доступ к слою Alt, и это замедляет ваш поток.

Для некоторых европейских языков вы можете перемещать символы постоянно, вместо того, чтобы иметь слой.

Например, сочетания клавиш [] и {} - Alt / Shift () и [] ;: '"для клавиш рядом с üäö, что позволяет вам сохранить почти нормальную американскую раскладку для кодирования и освободить место для символов ваших языков в местах где они обычно проживают.

Хенрик Эрландссон
источник