Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2009, 23:44   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Реагировать на изменение раскладки клавиатуры

у меня есть компонент xKeyHook
Я реагирую на нажатие клавиш, но есть один нюанс

procedure TForm1.xKeyHook1KeyDown(Sender: HWND; var Key: Integer);
begin

end;

я беру отсюда key и записываю в файл

И вот, допустим, у меня такие результаты

privet
в файле: 1 2 3

зкшмуе // это то же самое (privet), но на русской раскладке
в файле: 1 2 3

как реагировать на изменение раскладки клавы.
потому что код передается один и тот же....
Я зная раскладку клавиш не трудно будет доделать
Заранее большое спс!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 22.02.2009, 00:01   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

как узнать раскладку клавиатуры
Код:
 if GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)) = 67699721 then
  //раскладка английская
else
  //раскладка НЕанглийская, например 68748313 соответствует русской
как ее изменить
Код:
//На русский
procedure TForm1.Button1Click(Sender: TObject);
var
  Layout: array[0.. KL_NAMELENGTH] of char;
begin
  LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE);
end;

//На английский
procedure TForm1.Button2Click(Sender: TObject);
var
  Layout: array[0.. KL_NAMELENGTH] of char;
begin
  LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE);
end;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 22.02.2009, 00:53   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

а как узнать изменилась ли она?
то есть вот когда изменится - вот это событие?
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 22.02.2009, 01:18   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Нужно ловить сообщение WM_INPUTLANGCHANGEREQUEST
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
Мини-утилита для переключения раскладки SublimeYe Свободное общение 4 03.07.2008 22:29
имитация клавиатуры Var17 Win Api 3 17.06.2008 14:28
Смена раскладки клавиатуры NoName_emaNoN Общие вопросы Delphi 10 28.05.2008 08:55
Блокирование клавиатуры Milly Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.10.2007 19:15