Я использую Windows 7, и я хотел бы определить пользовательскую горячую клавишу для изменения между различными входными языками.
Я знаю, что могу изменить их на Ctrl+Shift, Левый Высокий звук + Сдвиг или серьезный диакритический знак, но мне не нравится ни один из них. ТАК есть ли способ определить что-то как Ctrl + Пространство для переключения входного языка?
Я думаю, что 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
расширение. Скопируйте и вставьте код выше и сохраните его. Можно поместить этот файл в папку Startup, если Вы хотите, чтобы это было открыто, когда Вы входите в систему.
Сценарий выше не работал на меня, но я изменил его, и теперь он делает.
#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