溫馨提示×

C# EnumWindows如何處理隱藏窗口

c#
小樊
91
2024-07-18 18:01:32
欄目: 編程語言

在C#中使用EnumWindows函數(shù)遍歷窗口時,可以通過指定不顯示隱藏窗口的標(biāo)志來過濾掉隱藏窗口。具體步驟如下:

  1. 首先定義一個回調(diào)函數(shù)來處理EnumWindows函數(shù)枚舉到的窗口:
public delegate bool EnumWindowsProc(IntPtr hWnd, int lParam);
  1. 使用EnumWindows函數(shù)遍歷所有窗口,并在回調(diào)函數(shù)中判斷窗口是否可見:
[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;
}
  1. 調(diào)用EnumWindows函數(shù)并傳入回調(diào)函數(shù):
EnumWindows(EnumWindowCallback, 0);

通過這種方式,可以過濾掉隱藏窗口,只處理可見窗口。

0