Я использую Windows 7 и хотел бы назначить специальную горячую клавишу для переключения между различными языками ввода.
Я знаю, что могу изменить их на Ctrl+ Shift, Left Alt+ Shiftили гравис, но мне не нравится ни один из них. ТАК есть ли способ определить что-то вроде Ctrl+ Spaceдля переключения языка ввода?
решение1
Я думаю, что Windows изначально не поддерживает изменение этих ключей. В любом случае, вы можете написатьАвтоИтскрипт для прослушивания пользовательских сочетаний клавиш и программной отправки в систему одного из предопределенных сочетаний клавиш для изменения раскладки клавиатуры.
;^ = 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
Альтернативный ответ
Если две раскладки клавиатуры не отличаются большим количеством символов, вы можете добавить Alt-модификаторы для иностранного языка (например, стандартные символы американской раскладки на слое Alt немецкой клавиатуры) с помощью такой утилиты, как AutoHotKey или аналогичной.
Или создайтераскладка клавиатуры для ОСчто является более правильным способом сделать это.
- никогда не придется переключаться и гадать, какой язык активен (может сильно отвлекать)
- вы можете часто обращаться к слою Alt, и это замедляет ваш поток.
Для некоторых европейских языков можно перемещать символы навсегда, вместо создания слоя.
Например, [] и {} — комбинации Alt/Shift (), а [];:'" — клавиши рядом с üäö, что позволяет сохранить почти обычную американскую раскладку для кодирования и освободить место для символов вашего языка в тех местах, где они обычно находятся.