GetForegroundWindow
是否有可能以某种方式获取由z 顺序检索的当前活动窗口下方的窗口句柄?换句话说,当前窗口下方的窗口,无论其大小和位置如何。
问问题
1640 次
2 回答
1
你可以试试这个 pinvoke 调用:
[DllImport("User32")] extern IntPtr GetTopWindow(IntPtr hWnd);
[DllImport("User32")] extern IntPtr GetNextWindow(IntPtr hWnd, uint wCmd);
并将其用作参数
uint GW_HWNDNEXT = 2;
因此,首先获取顶部窗口(或您的)。之后调用 GetNextWindow 并一次又一次地处理结果,......所以你会得到所有的窗口
于 2012-08-10T06:27:05.950 回答
0
您可以使用该函数获取下一个或上一个窗口(z 顺序)GetNextWindow
。
编辑:我刚刚在 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
}
于 2012-08-10T06:26:20.980 回答