有一个扭按Button1,单击它,我要实现的功能是获取当前活动窗口的句柄,如果窗口都被最小化了,则获取到最后一个被最小化的窗体句柄。问题的核心是:如何获取到最后一个被小最化的窗体?我首先想到了用钩子,用SetwindowsHookEx(WH_CALLWNDPROC , HookProc, HInstance, 0)。
直接截获所有窗口的最小化事件,只要有窗口被最小化,就把这个窗口的句柄记下来。那么,最后记录的句柄就是我要的句柄。可是钩子我总是写不好,执行时出错,把Explorer.exe都搞崩溃了好多次。求这段钩子的完整写法。最好是不用要DLL的。如果不用钩子,有其它方法达到我要实现的功能,也可以。小发现:其实FindWindow就可以实现我要的效果,该函数可以获取到最后一个被最小化的窗体句柄,但我要控制所有窗体,类名不同,所以无法使用该函数。
直接截获所有窗口的最小化事件,只要有窗口被最小化,就把这个窗口的句柄记下来。那么,最后记录的句柄就是我要的句柄。可是钩子我总是写不好,执行时出错,把Explorer.exe都搞崩溃了好多次。求这段钩子的完整写法。最好是不用要DLL的。如果不用钩子,有其它方法达到我要实现的功能,也可以。小发现:其实FindWindow就可以实现我要的效果,该函数可以获取到最后一个被最小化的窗体句柄,但我要控制所有窗体,类名不同,所以无法使用该函数。
IsIconic
GetLastActivePopup
IsIconic
GetLastActivePopup
IsIconic
GetLastActivePopup
看了一下GetLastActivePopup函数的帮助,楼上的几位朋友是不是让先遍历窗口,然后根据得到的句柄逐个 if GetLastActivePopup(hwnd)=hwnd then 吗?