#winapi #focus #foreground
#winapi #фокус #передний план
Вопрос:
Я хотел бы иметь возможность определять, когда окно получает фокус, когда пользователь нажимает на панель задач или переключается на окно с помощью Alt Tab. Возможно ли это?
Комментарии:
1. Вероятно, нет. Зачем вам это знать?
2. Почему вас волнуют эти конкретные действия? На панели задач можно управлять с клавиатуры. Зачем дискриминировать пользователей, использующих клавиатуру? Существуют различные события и перехваты, которые сообщают вам, когда окна получают фокус, становятся активированными и т. Д.
3. Похоже, вы разделили свою проблему на две проблемы: тривиальную и невозможную. Теперь вы просите помощи с невозможным. Почему бы вам не спросить о реальной проблеме, которую вы пытаетесь решить, вместо предлагаемого вами решения? Конечно, вы могли бы зарегистрировать обратный вызов WinEvents и прослушать
EVENT_OBJECT_FOCUS
. Но это не даст вам никакой информации о том, как объект получил фокус ввода. Я почти уверен, что вас даже не интересует фокус ввода (а не активация окна).4. @IInspectable Вы правы. Я имел в виду активацию окна. Я автоматизирую определенные задачи в другом окне, когда оно становится активированным, но я не хочу выполнять действие, если они нажимают на окно, чтобы активировать его.
5. Но если они активируют его с помощью клавиатуры, тогда вы хотите продолжить? Или, действительно, какое-либо другое пользовательское устройство ввода. Что особенного в мыши?