FindWindowEx
是 Windows API 中的一个函数,用于在 Windows 操作系统中查找窗口句柄。在 C# 中,你可以使用 P/Invoke(平台调用)来调用这个函数。下面是一个简单的示例,展示了如何使用 FindWindowEx
函数在 C# 中查找窗口句柄。
首先,你需要在 C# 代码中添加以下 using
指令:
using System; using System.Runtime.InteropServices;
然后,你可以定义一个名为 FindWindowExHelper
的静态类,其中包含一个名为 FindWindowEx
的静态方法。这个方法接受四个参数,分别表示要查找的窗口句柄、父窗口句柄、类名和一个窗口标题。方法的返回值是一个 IntPtr
,表示找到的窗口句柄。
public static class FindWindowExHelper
{
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
}
现在,你可以在你的应用程序中使用 FindWindowExHelper.FindWindowEx
方法来查找窗口句柄。例如,要查找一个名为 “Notepad” 的记事本窗口,你可以这样做:
IntPtr hwnd = FindWindowExHelper.FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Notepad", null); if (hwnd != IntPtr.Zero) { Console.WriteLine("Found Notepad window with handle: " + hwnd); } else { Console.WriteLine("Notepad window not found."); }
请注意,这个示例中的 FindWindowEx
方法将查找顶层窗口。如果你需要查找嵌套的窗口,你需要传递正确的 hwndChildAfter
参数。此外,你可能需要使用其他窗口类名或窗口标题来定位你想要查找的窗口。