Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват переключения раскладки клавы / 5 сообщений из 5, страница 1 из 1
04.11.2005, 10:40
    #33361457
SCORPION Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват переключения раскладки клавы
Как во время работы моего приложения перехватывать событие переключения
раскладки (скажем по Ctrl+Shift или Alt+Shift) и блокировать это переключение.
...
Рейтинг: 0 / 0
04.11.2005, 13:53
    #33361720
SCORPION Z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват переключения раскладки клавы
Блокировка переключения раскладки клавиатуры в приложении реализуется достаточно просто -

необходимо перехватить сообщение WM_INPUTLANGCHANGEREQUEST.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
//Перехват сообщений приложения
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
 //если переключение раскладки клавы
 if (Msg.message == WM_INPUTLANGCHANGEREQUEST)
   Handled = true;  //блокируем
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Application->OnException = MyException;
 ...
}
}

СПАСИБО всем за обсуждение! Пользуйтесь мне не жалко.
Тема закрыта!
...
Рейтинг: 0 / 0
05.11.2005, 03:34
    #33362315
XED
XED
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват переключения раскладки клавы
а ещё можно принудительно менять раскладку:
LoadKeyboardLayout (...)
посмотрите в хелпе...
при вызове:
LoadKeyboardLayout("00000419", KLF_ACTIVATE) //Russian
LoadKeyboardLayout("00000409", KLF_ACTIVATE) //English
...
Рейтинг: 0 / 0
09.11.2005, 09:47
    #33368130
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват переключения раскладки клавы
SCORPION ZБлокировка переключения раскладки клавиатуры в приложении реализуется достаточно просто -
необходимо перехватить сообщение WM_INPUTLANGCHANGEREQUEST.

Приведите весь код, пожалуйста...
А то у меня почему-то в 5-м Билдере сообщение о смене раскладки (WM_INPUTLANGCHANGEREQUEST) не перехватывается... Может я чего не понял? Другие сообщения (WM_MOVE, WM_SIZE и т.д.) перехватываются той же (!) функцией нормально...
...
Рейтинг: 0 / 0
09.11.2005, 13:18
    #33368769
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват переключения раскладки клавы
Станислав C. SCORPION ZБлокировка переключения раскладки клавиатуры в приложении реализуется достаточно просто -
необходимо перехватить сообщение WM_INPUTLANGCHANGEREQUEST.

Приведите весь код, пожалуйста...
А то у меня почему-то в 5-м Билдере сообщение о смене раскладки (WM_INPUTLANGCHANGEREQUEST) не перехватывается... Может я чего не понял? Другие сообщения (WM_MOVE, WM_SIZE и т.д.) перехватываются той же (!) функцией нормально...
Блин... Сказал бы сразу, что надо еще компонент TApplicationEvents на форму кинуть и будет счастье...
А то я пытался через BEGIN_MESSAGE_MAP...END_MESSAGE_MAP(), через подмену функции обработки сообщений WndProc и т.д...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват переключения раскладки клавы / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]