是否有可能以某种方式获取GetForegroundWindow
检索到的当前活动窗口下方的窗口句柄,z顺序?换句话说,无论大小和位置如何,窗口都在当前窗口之下。
答案 0 :(得分:1)
你可以试试这个pinvoke电话:
[DllImport("User32")] extern IntPtr GetTopWindow(IntPtr hWnd);
[DllImport("User32")] extern IntPtr GetNextWindow(IntPtr hWnd, uint wCmd);
并将其用作参数
uint GW_HWNDNEXT = 2;
首先得到顶部窗口(或你的)。之后再次调用GetNextWindow和结果句柄,......所以你将获得所有窗口
答案 1 :(得分:0)
您可以使用GetNextWindow
功能获取下一个或上一个窗口(z顺序)。
编辑:我刚在pinvoke.net上看到GetNextWindow
是GetWindow
的宏。所以你不妨直接打电话给GetWindow
:
来自pinvoke.net的代码:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd);
enum GetWindow_Cmd : uint {
GW_HWNDFIRST = 0,
GW_HWNDLAST = 1,
GW_HWNDNEXT = 2,
GW_HWNDPREV = 3,
GW_OWNER = 4,
GW_CHILD = 5,
GW_ENABLEDPOPUP = 6
}