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