在C#中使用EnumWindows函數遍歷窗口時,可以通過指定不顯示隱藏窗口的標志來過濾掉隱藏窗口。具體步驟如下:
public delegate bool EnumWindowsProc(IntPtr hWnd, int lParam);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, int lParam);
[DllImport("user32.dll", SetLastError = true)]
public static extern bool IsWindowVisible(IntPtr hWnd);
public static bool EnumWindowCallback(IntPtr hWnd, int lParam)
{
if (IsWindowVisible(hWnd))
{
// 處理可見窗口的邏輯
}
return true;
}
EnumWindows(EnumWindowCallback, 0);
通過這種方式,可以過濾掉隱藏窗口,只處理可見窗口。