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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 15:31   #21
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
уточню:
Код:
procedure TfLogin.AppEMessage(var Msg: tagMSG; var Handled: Boolean);
begin
lbLang.Caption:=GetLanguage;
end;
и зачем ее ловить? если она нормально реагирует на все изменения языка
Ты попробуй вместо Label1.Caption сделать ShowMessage и при запуске программы, сообщение выйдет раз 50 наверно. Зачем зря грузить систему? Нужно именно отлавливать WM_INPUTLANGCHANGE, только как?

GunSmoker, ну напиши плиз пример с хуком.
FaTaL вне форума Ответить с цитированием
Старый 21.05.2012, 15:35   #22
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
WM_INPUTLANGCHANGEREQUEST в Application.OnMessage для XP нормально отлавливает изменение языка ввода. Наверно GunSmoker прав, что не всегда, но пока не замечал бяк
Приведи пример плиз.
FaTaL вне форума Ответить с цитированием
Старый 21.05.2012, 15:48   #23
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm2.FormCreate(Sender: TObject);
begin
  Application.OnMessage:=ApplicationEventsMessage;
end;

procedure TForm2.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
begin
  if msg.message = WM_INPUTLANGCHANGEREQUEST then ShowMessage('Поймал!');
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.05.2012, 16:02   #24
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Не работает этот код. Не ловит он сообщение.
FaTaL вне форума Ответить с цитированием
Старый 21.05.2012, 17:23   #25
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Ты попробуй вместо Label1.Caption сделать ShowMessage и при запуске программы, сообщение выйдет раз 50 наверно. Зачем зря грузить систему? ...
мне это на скорости не сильно сказывается, а главное что работает нормально
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 24.05.2012, 08:04   #26
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Ну что никто не поможет с хуком на WM_INPUTLANGCHANGE?
FaTaL вне форума Ответить с цитированием
Старый 24.05.2012, 15:04   #27
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Всем спасибо, но никто не оказался прав. Еле-еле нашёл на просторах инета код на C# и всё получилось. Оказывается сообщение WM_INPUTLANGCHANGE и WM_INPUTLANGCHANGEREQUEST работает только на ОСях ниже чем ХР. А на новых ОСях всё совсем по другому.
Если кому нужно, то вот функция хука:
Код:
function HookProc (nCode: integer; wParam: word; lParam: LongWord): LongWord; stdcall;
begin
  if nCode = HSHELL_LANGUAGE then
    // Язык сменился, делаем что Вам надо;
  result := CallNextHookEx(HookH, nCode, wParam, lParam);
end;
Хук ставить на WH_SHELL

Последний раз редактировалось FaTaL; 24.05.2012 в 15:07.
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раскладка клавиатуры DSK Общие вопросы Delphi 5 21.03.2011 04:28
Раскладка клавиатуры soktahan Microsoft Office Excel 2 24.11.2010 22:22
Раскладка клавиатуры Vladya Помощь студентам 10 21.05.2010 22:14
раскладка клавиатуры varelik Общие вопросы Delphi 4 07.12.2009 16:14
Раскладка клавиатуры bracomp Операционные системы общие вопросы 11 04.11.2009 21:45