FindWindow
函數是 Windows API 中的一個函數,用于根據窗口類名或窗口標題查找窗口。然而,FindWindow
函數并不能直接查找隱藏的窗口。
如果你想查找隱藏的窗口,可以使用 EnumWindows
函數枚舉所有窗口,然后使用 IsWindowVisible
函數檢查窗口是否可見。這是一個示例代碼:
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
class Program
{
[DllImport("user32.dll")]
static extern bool EnumWindows(EnumWindowsDelegate lpEnumFunc, IntPtr lParam);
[DllImport("user32.dll")]
static extern bool IsWindowVisible(IntPtr hWnd);
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate bool EnumWindowsDelegate(IntPtr hWnd, IntPtr lParam);
static void Main()
{
EnumWindows(EnumWindowsCallback, IntPtr.Zero);
}
static bool EnumWindowsCallback(IntPtr hWnd, IntPtr lParam)
{
if (IsWindowVisible(hWnd))
{
Console.WriteLine("Found visible window: " + new IntPtr(hWnd).ToString("X"));
}
return true;
}
}
這個示例代碼會枚舉所有可見的窗口并將其標題輸出到控制臺。請注意,這個方法只能查找可見的窗口,如果你想查找隱藏的窗口,你需要使用其他方法,例如監聽窗口消息或使用鉤子。