10

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

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

4 ответа4

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

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», который позволяет вам задавать комбинации для прямого доступа к каждой целевой клавиатуре, а также общую последовательность клавиш переключения.

0

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .