![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Привет всем! У меня вопрос как на Delphi сделать так, чтобы не активное приложение могло отлавливать изменение раскладки клавиатуры в среде Windows. У меня только получается когда приложение активно. Заранее спасибо.
Все сообщения присылайте на e-mail: [email protected] -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Смотри в FAQ пример хуков, а тебе нужен хук WH_SHELL,
код хука HSHELL_LANGUAGE... -------------------- С уважением, г-н Посол. |
|||
|
||||
Pakshin A. S. |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Можно и без хука:
Пуской процесс, запомнив начальную раскладку. Затем в цикле бери текущую раскладку и сравнивай её с первоначальной, если раскладка изменилась, измени старую раскладку на новую и т. п... ![]() |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Цикл не самое лучшее решение проблемы...
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Вродебы, какоето сообщение посылается всем окошкам, когда переключается раскладка. Но это очень "вродебы".
|
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
При использовании функции AddFontResurce и RemoveFontResource, посылается WM_FONTCHANGE, но это не подойдет. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Идея хорошая. Только ИМХО лучше использовать не цикл, а обработчик TTimer. -------------------- |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Вот, нашел: WM_INPUTLANGCHANGEREQUEST. Его посылают при переключении раскладки клавы.
Или если уж по таймеру, то так:
|
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Cheba, я не пробовал, но в MSDN'е написано про WM_INPUTLANGCHANGEREQUEST:
А у него приложение неактивное... -------------------- С уважением, г-н Посол. |
|||
|
||||
Cheba |
|
|||
![]() pointless one ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1777 Регистрация: 27.11.2003 Где: /dev/null Репутация: 1 Всего: 62 |
Хотел как лучше...
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |