FindWindowEx
是 Windows API 中的一个函数,用于在 Z 顺序窗口列表中查找具有指定类名、窗口名和窗口过程的顶级窗口。它返回找到的窗口句柄,如果没有找到则返回 IntPtr.Zero
。
在 C# 中,你可以使用 P/Invoke
来调用 FindWindowEx
函数。以下是一个示例:
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
static void Main()
{
// 示例用法
IntPtr hwndParent = IntPtr.Zero; // 父窗口句柄,通常为桌面窗口句柄
IntPtr hwndChildAfter = IntPtr.Zero; // 子窗口句柄,通常为 NULL
string lpszClass = "STATIC"; // 类名
string lpszWindow = "示例窗口标题"; // 窗口标题
IntPtr hwndResult = FindWindowEx(hwndParent, hwndChildAfter, lpszClass, lpszWindow);
if (hwndResult != IntPtr.Zero)
{
Console.WriteLine("找到窗口,句柄为: " + hwndResult);
}
else
{
Console.WriteLine("未找到窗口");
}
}
}
在这个示例中,我们首先使用 DllImport
属性导入 user32.dll
库,并定义了 FindWindowEx
函数的签名。然后,在 Main
方法中,我们调用 FindWindowEx
函数并传入相应的参数。最后,我们检查返回的窗口句柄是否有效,并输出相应的结果。