Есть ли способ узнать, когда другой HWND закрылся?
Есть ли способ для настройки слушателя / наблюдателя, чтобы знать, когда закрытое окно приложения закрыто?
Я могу проверить, открыто ли окно, но это кажется глупым постоянно делать.
2 ответа
Решение
Доступность API SetWinEventHook
фильтрация для EVENT_OBJECT_DESTROY
,
Это основано на уведомлении, поэтому никакой опрос и, в отличие от крючка CBT, не требует инъекции.
Вы можете:
- опрос для
HWND
действительность (особенно если вам не нужна точность синхронизации) - подкласс окна, чтобы перехватить его
WM_DESTROY
а затем перешлите уведомление в ваше приложение - установить перехват сообщения окна, чтобы иметь возможность перехватить сообщение в противном случае
- создайте скрытое дочернее окно, чтобы уничтожить его с помощью родительского уничтожения, чтобы ваш обработчик сообщений вызывался вовремя