迭代打开的任何窗口并在环境上具有最高的z顺序,如何验证窗口没有弹出(工具提示弹出,组合弹出等)?
使用WinApi方法:
HWND WINAPI GetWindow(
_In_ HWND hWnd,
_In_ UINT uCmd
);
for (IntPtr childWindow = WinAPI.GetWindow(WinAPI.GetDesktopWindow(), WinAPI.GetWindow_Cmd.GW_CHILD);
childWindow != IntPtr.Zero;
childWindow = WinAPI.GetWindow(childWindow, WinAPI.GetWindow_Cmd.GW_HWNDNEXT))
{
//todo if
}
答案 0 :(得分:0)
感谢所有发表评论的人,您使我找到了解决方案。这是我用Spy ++进行测试的方法。
如果您有一些建议/想法,我将不胜感激。
public const long WS_POPUP = 0x80000000L;
public static bool IsWindowPopup(IntPtr hHandle)
{
long style = WinAPI.GetWindowLongPtr(hHandle, -16);
bool isPopup = ((style & WS_POPUP) != 0);
return isPopup;
}