2009-05-20 85 views
3

我正在開發一個位於系統托盤中的應用程序,並且可以在活動窗口上執行操作。但是當系統托盤中的圖標被點擊時,GetForegroundWindow()返回任務欄。我需要獲取在任務欄之前處於活動狀態的窗口。獲取上次激活窗口的窗口句柄

我試着用EnumWindowsGetWindow來枚舉桌面窗口,但是這往往會導致桌面小工具和其他不活躍的頂級項目。甚至有可能,或者窗口停用時信息完全丟失?

回答

2

我想獲得這些信息的唯一途徑就是通過WH_CALLWNDPROC安裝系統全局鉤子(SetWindowsHookEx)和捕捉所有WM_ACTIVATEAPP。這甚至可以讓你跟蹤哪個窗口處於活動狀態時的完整歷史記錄。

+0

這工作得很好。不過,我有一個關於某些應用程序未受影響的問題,因爲它們是64位(如果我爲64位編譯,則爲32位)。有任何想法嗎? – 2009-05-20 00:24:02