@lilla.herman Приветствую!
Для определения раскладки нужно понимать что именно мы ищем, т.е. нужно знать код искомой раскладки, например 68748313 соответствует русской.
1 2 3 4 5 6 7 8 |
Const EN = 67699721 RU = 68748313 ... if GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)) = EN then ShowMessage('раскладка английская'); else ShowMessage('раскладка НЕ английская'); |
@lilla.herman
В Delphi для получения текущей раскладки клавиатуры можно использовать функцию GetKeyboardLayoutName из модуля Windows:
1 2 3 4 5 6 7 8 9 10 11 12 |
uses Windows; function GetCurrentKeyboardLayout: string; var kbLayout: HKL; kbLayoutName: array[0..KL_NAMELENGTH-1] of Char; begin kbLayout := GetKeyboardLayout(0); GetKeyboardLayoutName(kbLayoutName); Result := kbLayoutName; end; |
Эта функция возвращает строку, содержащую идентификатор текущей раскладки клавиатуры, например, "00000409" для раскладки "ENG".