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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2014, 17:35   #1
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию Как отслеживать фокус клавиатуры?

Нужно отслеживать момент приобретения фокуса клавиатуры тем или иным окном во всей системе (не только в приложении) и вызывать при этом некую процедуру.
Думаю создать поток, вызывающий, например, каждую секунду функцию GetForegroundWindow, и проверяющий результат, и если необходимо, выполняющий дальнейшие действия.
Но... как то это некрасиво. Подкиньте идею, как реализовать.
Заранее спасибо))
Питерский2 вне форума Ответить с цитированием
Старый 07.06.2014, 17:46   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

HOOK нужно использовать.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 07.06.2014, 18:21   #3
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию

Что именно стоит перехватывать?
Питерский2 вне форума Ответить с цитированием
Старый 07.06.2014, 18:28   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Видимо сообщение WM_SETFOCUS на хуке WH_CBT
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.06.2014, 18:34   #5
Питерский2
Пользователь
 
Регистрация: 20.05.2014
Сообщений: 29
По умолчанию

Stilet, спасибо!
На сколько я помню, если ставить SetWindowsHookEx глобально, то сама функция ловушки должна быть в ДЛЛ и проецироваться в адресные пространства других процессов...
Но мне ничего не надо делать в других процессах, только отслеживать фокус. Может есть другие способы без ДЛЛ?
Питерский2 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отслеживать изменения в MYSQL Matras SQL, базы данных 2 19.06.2012 11:26
Как отслеживать процесс в Диспетчере задач... xC0der Win Api 2 12.01.2012 10:41
Как снять фокус? MyLastHit Общие вопросы Delphi 2 20.08.2010 23:03
Как возвратить фокус? Кинельски Общие вопросы Delphi 1 12.06.2010 17:46
Как лучше отслеживать текстбокс Eresiarh Microsoft Office Excel 7 19.02.2010 16:24