Встречал несколько решений для того, чтобы удобно отображать текущую раскладку клавиатуры и не отвлекаться после неверно напечатанного текста, - ничего не понравилось. Случайно создал свой скрипт.
Этот скрипт срабатывает только когда происходит клик мыши по текстовому полю, когда клик в любом другом месте - раскладка не выводится. В результате сильно не раздражает и позволяет увидеть текущую раскладку клавиатуры до начала печати.
Работает практически во всех приложениях. Русский и английский язык. Тестировал на платформе 8.3.20.1789.
Текст скрипта
~LButton::
{
If (A_Cursor = "IBeam")
TipLayout()
}
return
TipLayout() ;сообщить раскладку
{
CurrentLayout := GetLayout()
ToolTip % CurrentLayout
Sleep 600
ToolTip ;
}
GetLayout() ;определение раскладки
{
threadId := DllCall("GetWindowThreadProcessId", Ptr, WinExist("A"), UInt, 0, Ptr)
landId := DllCall("GetKeyboardLayout", Ptr, threadId, Ptr) & 0xFFFF
if (landId = 0x409)
CurrentLayout := "En"
else
CurrentLayout := "Ru"
Return CurrentLayout
}