Определение, когда окно сфокусировано, щелчком на панели задач или с помощью Alt Tab

#winapi #focus #foreground

#winapi #фокус #передний план

Вопрос:

Я хотел бы иметь возможность определять, когда окно получает фокус, когда пользователь нажимает на панель задач или переключается на окно с помощью Alt Tab. Возможно ли это?

Комментарии:

1. Вероятно, нет. Зачем вам это знать?

2. Почему вас волнуют эти конкретные действия? На панели задач можно управлять с клавиатуры. Зачем дискриминировать пользователей, использующих клавиатуру? Существуют различные события и перехваты, которые сообщают вам, когда окна получают фокус, становятся активированными и т. Д.

3. Похоже, вы разделили свою проблему на две проблемы: тривиальную и невозможную. Теперь вы просите помощи с невозможным. Почему бы вам не спросить о реальной проблеме, которую вы пытаетесь решить, вместо предлагаемого вами решения? Конечно, вы могли бы зарегистрировать обратный вызов WinEvents и прослушать EVENT_OBJECT_FOCUS . Но это не даст вам никакой информации о том, как объект получил фокус ввода. Я почти уверен, что вас даже не интересует фокус ввода (а не активация окна).

4. @IInspectable Вы правы. Я имел в виду активацию окна. Я автоматизирую определенные задачи в другом окне, когда оно становится активированным, но я не хочу выполнять действие, если они нажимают на окно, чтобы активировать его.

5. Но если они активируют его с помощью клавиатуры, тогда вы хотите продолжить? Или, действительно, какое-либо другое пользовательское устройство ввода. Что особенного в мыши?