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
函數并傳入相應的參數。最后,我們檢查返回的窗口句柄是否有效,并輸出相應的結果。