Используя AutoHotKey, вы можете периодически проверять наличие активного окна и переключать раскладку клавиатуры в зависимости от того, какое окно стало активным.
Позвольте мне процитировать аналогичное решение, которое переключает раскладку клавиатуры на английский, когда окно быстрого поиска Total Commander становится активным. Я думаю, что если вы понимаете такие инструменты, как Cygwin, вы легко сможете настроить его для своих нужд.
Подсказка по читабельности: в приведенных ниже списках сценариев точка с запятой начинает комментарий до конца строки.
http://www.script-coding.com/AutoHotkey/AhkRussianEng.html
Сначала мы создаем таймер, который запускает автоматизацию окон, и вставляем его где-то в секцию автоматического выполнения скрипта.
#Persistent ; The script will be persistent
;(if you have any hotkeys or hotstrings after the auto-execution section,
;this directive is unnecessary)
SetTimer, Auto_Window, 200 ; Move to the specified subroutine every 0.2 seconds
Return ; Finish the auto-executing part
Теперь подпрограмма автоматизации самих окон:
Auto_Window:
;a label to call the window automation timer (this subroutine can be placed
;at any place of the script. I like to put subroutines at the end of a script, but it is not compulsory)
; switch the keyobard layout if QuickSearch window is active
IfWinActive, ahk_class TQUICKSEARCH ; if the quick search window in TC is active, then...
{
if Win_QS = ; if the window has just become active, then...
{
SendMessage, 0x50,, 0x4090409,, ahk_class TQUICKSEARCH
; Switch the layout to English in the quick search window
Win_QS = 1 ; Flag that the window is already active
}
}
Else ; if the window is not active, then...
Win_QS = ; Flag that the window is NOT active
Return ; The end of the subroutine that is called by the timer
Обратитесь к документации для IfWinActive, чтобы узнать, как распознавать окна по вашему выбору.