Это не сложный процесс, как всегда лежит в области 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Сентябрь 8, 2009 г.
Каждый год, обычно весной, просят у меня исходники по задаче комивояжера. А я их давно сам не видел, что называется, и вроде как отмораживаюсь, говорю - куда дел, не знаю. Но тут разгребал проекты по работе и наткнулся на избранные архивы дельфийских ...
Читать
Октябрь 15, 2015 г.
Давно ничего не кропал на Delphi. Забыл уже элементарный синтаксис. Начинаю кое что восстанавливать, и по пути возникают вопросы вроде subj.
Целых два способа.
Ставим кавычку с помощью преобразования кода символа.
[crayon-689598f4ef381176661240/] ...
Читать
Декабрь 13, 2015 г.
Это не гайд по созданию библиотек функций на Delphi. Я предлагаю готовый каркас, с которого удобно начать написание. Если вы не пишите каждый день новую ...
Читать
Октябрь 22, 2015 г.
Делфи реализует в объектах элементов интерфейса различные события - в том числе нажатия клавиш. Но мы получаем уже конкретные ASCII коды, при этом приложение ...
Читать