Есть ли способ узнать, когда другой HWND закрылся?

Есть ли способ для настройки слушателя / наблюдателя, чтобы знать, когда закрытое окно приложения закрыто?

Я могу проверить, открыто ли окно, но это кажется глупым постоянно делать.

2 ответа

Решение

Доступность API SetWinEventHook фильтрация для EVENT_OBJECT_DESTROY,

Это основано на уведомлении, поэтому никакой опрос и, в отличие от крючка CBT, не требует инъекции.

Вы можете:

  1. опрос для HWND действительность (особенно если вам не нужна точность синхронизации)
  2. подкласс окна, чтобы перехватить его WM_DESTROY а затем перешлите уведомление в ваше приложение
  3. установить перехват сообщения окна, чтобы иметь возможность перехватить сообщение в противном случае
  4. создайте скрытое дочернее окно, чтобы уничтожить его с помощью родительского уничтожения, чтобы ваш обработчик сообщений вызывался вовремя
Другие вопросы по тегам