Это не сложный процесс, как всегда лежит в области know-how. Предлагаю использовать вот такую связку функций.
|
|
function GetActiveKbdLayoutWnd : LongWord; var hWindow,idProcess : THandle; begin hWindow := GetForegroundWindow; idProcess := GetWindowThreadProcessId(hWindow,nil); Result:=(GetKeyboardLayout(idProcess) shr $10); end; |
Данная функция определяет активное окно и затем, по ID его процесса, получает код раскладки. Для русскоязычной публики типичны два кода (даю их в HEX виде):
|
|
$409 - Английский, США $419 - Русский, Россия |
Вы можете всегда их определить экспериментально или посмотреть в таблице кодов.
Данная запись опубликована в 22.10.2015 19:46 и размещена в рубрике Delphi.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Октябрь 22, 2015 г.
Делфи реализует в объектах элементов интерфейса различные события - в том числе нажатия клавиш. Но мы получаем уже конкретные ASCII коды, при этом приложение ...
Читать
Декабрь 13, 2015 г.
Это не гайд по созданию библиотек функций на Delphi. Я предлагаю готовый каркас, с которого удобно начать написание. Если вы не пишите каждый день новую ...
Читать
Октябрь 15, 2015 г.
Давно ничего не кропал на Delphi. Забыл уже элементарный синтаксис. Начинаю кое что восстанавливать, и по пути возникают вопросы вроде subj.
Целых два способа.
Ставим кавычку с помощью преобразования кода символа.
[crayon-6a51c99b61d39137454948/] ...
Читать
Октябрь 16, 2015 г.
Это можно сказать хрестоматийная задача. Как мы это делали ещё в школе на Турбо Паскале (Turbo Pascal), так это до сих пор работает в Delphi. Конечно же похожие примеры можно найти в сети, но Интернет - большой, а хороших примеров мало. Потому я время ...
Читать