Как узнать текущую раскладку клавиатуры

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как узнать текущую раскладку клавиатуры

Сообщение Kubanych » 07.02.2009 09:00:26

Как узнать текущую раскладку клавиатуры?

На Delphi такой код работает:

if GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)) = 67699721 then
//раскладка английская
begin
Label1.Caption:='Hello, world!';
end
else
//раскладка Не английская, например 68748313 соответствует русской
begin
Label1.Caption:='Привет, Мир!';
end;

А Lazarus ругается. Говорит:
Error: Identifier not found "GetKeyboardLayout"
Error: Identifier not found "GetWindowThreadProcessId"
Error: Identifier not found "GetForegroundWindow"
Kubanych
новенький
 
Сообщения: 73
Зарегистрирован: 15.10.2008 10:02:18

Re: Как узнать текущую раскладку клавиатуры

Сообщение Vadim » 07.02.2009 09:16:02

Kubanych
Может быть потому, что Вы забыли в строку Uses добавить модуль Windows? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как узнать текущую раскладку клавиатуры

Сообщение Kubanych » 07.02.2009 09:35:26

Спасибо!

Добавлено спустя 8 минут 29 секунд:
Работает, если запускать ехешник. А если из Lazarus запускать, то он самопризвольно меняет раскладку. Т.е. если была раскладка русская, то она меняет ее на английскую. После закрытия программы раскладка вновь становится русской.
Kubanych
новенький
 
Сообщения: 73
Зарегистрирован: 15.10.2008 10:02:18

Re: Как узнать текущую раскладку клавиатуры

Сообщение Vadim » 07.02.2009 10:34:07

Kubanych писал(а):А если из Lazarus запускать, то он самопризвольно меняет раскладку.

Так и должно быть. :) У Вас ведь две отдельные раскладки - одна в самом Lazarus'е и одна в той программе, что Вы запускаете.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как узнать текущую раскладку клавиатуры

Сообщение VirtUX » 07.02.2009 19:48:50

а как узнать под Linux раскладку?
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Как узнать текущую раскладку клавиатуры

Сообщение yuray » 10.02.2009 19:10:20

VirtUX писал(а):а как узнать под Linux раскладку?

И мне интересно.
yuray
новенький
 
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Re: Как узнать текущую раскладку клавиатуры

Сообщение ssadragon » 15.07.2013 10:46:26

VirtUX писал(а):а как узнать под Linux раскладку?

Ну и?????
Как это лучше сделать?
Есть у кого соображения?
ssadragon
постоялец
 
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Re: Как узнать текущую раскладку клавиатуры

Сообщение v-t-l » 15.07.2013 12:05:02

читать про функции XkbGetState и XkbGetNames (устаревающие в связи с Wayland/Mir)
v-t-l
энтузиаст
 
Сообщения: 741
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 261

Рейтинг@Mail.ru
cron