Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальный перехват сообщений.. Помогите пожалуйста разобраться.. 
:(
    Опции темы
puZzo
Дата 2.10.2008, 18:02 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



Люди, помогите плиз разобраться, на пальцах, желательно по-русски=)))

Как поймать сообщение WM_INPUTLANGCHANGEREQUEST при смене раскладки не только в своем приложении..
я понимаю, что нужно ставить глобальный хук, но здесь я захожу в тупик, как это сделать..локально (в своем приложении я разобрался и сделал), а вот с dll'ой не пойму никак=(( явно не хватает знаний по этой теме..

Желательно было бы пример хорошей документации по хукам..если можно=))
PM ICQ   Вверх
CodeMonkey
Дата 2.10.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
THandle
Дата 2.10.2008, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 7
Всего: 372



CodeMonkey, у нас это статья тоже есть:

http://base.vingrad.ru/view/2011-Hooks---a...tyi-realizatsii

Не принципиально конечно, где брать инфу, но все не просто так это в местной базе знаний висит smile 
PM   Вверх
CodeMonkey
Дата 3.10.2008, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



THandle, я просто тут у вас относительно недавно, а на Королевстве уже больше года. Чьи закоулки мне больше знакомы, оттуда ссылки и кидаю ;)


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
puZzo
Дата 3.10.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



Спасибо за доку, разобрался, поставил, заработало..вот только появилась другая проблема, при переключении активного приложения, если в нем другая раскладка, хук не срабатывает=( проверил так..в тотале стоит англ., в браузере рус. При переключении между приложениями значок раскладки меняется..а вот мой хук не срабатывает...
PM ICQ   Вверх
CodeMonkey
Дата 3.10.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(puZzo @  3.10.2008,  10:13 Найти цитируемый пост)
а вот мой хук не срабатывает...

Так ведь раскладка же не меняется. С чего ж ему срабатывать-то?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
puZzo
Дата 7.10.2008, 04:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



Как это не меняется? Язык ввода то изменяется, и индикатор виндовый меняется..да и не только стандартный, у меня стоит панто свитчер, он тоже реагирует..уже думал отслеживать состояние окошка языка(виндовое), но отказался, у меня оно отключено=)) Я так полагаю же должна же быть гдето переменная чтоли, которая отвечает за вводимый язык...
PM ICQ   Вверх
CodeMonkey
Дата 8.10.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(puZzo @  7.10.2008,  04:50 Найти цитируемый пост)
Язык ввода то изменяется

Да не меняется он, с чего вы это взяли? smile 
У каждой программы есть своя индивидуальная раскладка. От того, что вы сделали активной вторую программу - ни в первой программе, ни во второй раскладка не меняется. 
Если не понятно, то давайте посмотрим на ваш пример. Начальная позиция: в тотале - англ, в браузере - рус, и тотал активен. Вы переключаетесь на браузер. Конечная позиция: в тотале - англ, в браузере - рус, и браузер активен.
Ну и где же вы увидели здесь переключение раскладки? В тотале как был англ, так и остался - нет переключения. В браузере как был рус, так и остался. Опять-таки нет переключения.
Вы переключидись между приложениями, а не переключили раскладку. Чувствуете разницу?

Цитата(puZzo @  7.10.2008,  04:50 Найти цитируемый пост)
Я так полагаю же должна же быть гдето переменная чтоли, которая отвечает за вводимый язык...

Ну есть. Получить можно, например, GetKeyboardLayout-ом.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
BaD_SeCt0R
Дата 8.10.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lazy Coder
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 9.10.2006
Где: Анапа

Репутация: 3
Всего: 18





--------------------
Кто владеет информацией - владеет миром. (С) Френсис Бэкон.
PM MAIL ICQ   Вверх
puZzo
Дата 13.10.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



CodeMonkey, спасибо, теперь понял..почти..но как тогда узнать язык ввода в текущем активном окне? хук на любое активное окно и при смене брать его язык ввода?

BaD_SeCt0R, данке=)
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.