Получить дескриптор окна последнего активированного окна - PullRequest
3 голосов
/ 20 мая 2009

Я занимаюсь разработкой приложения, которое находится в системном трее и может выполнять действия в активном окне. Но если щелкнуть значок на панели задач, GetForegroundWindow() возвращает панель задач. Мне нужно получить окно, которое было активным до того, как панель задач была.

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

1 Ответ

2 голосов
/ 20 мая 2009

Я думаю, что единственный способ получить эту информацию - это установить системный хук ( SetWindowsHookEx ) на WH_CALLWNDPROC и захватить все WM_ACTIVATEAPP. Это даже позволит вам отслеживать полную историю того, какое окно было активным, когда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...