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