通过C#,可以使用EnumWindows
函数来遍历所有窗口,然后使用GetWindowText
函数获取每个窗口的标题,最后通过判断窗口标题来筛选出需要的子窗口。
以下是一个简单的示例代码:
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("user32.dll")]
public static extern bool EnumWindows(EnumWindowsProc enumProc, IntPtr lParam);
[DllImport("user32.dll")]
public static extern int GetWindowText(IntPtr hWnd, System.Text.StringBuilder lpString, int nMaxCount);
public delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
static void Main()
{
EnumWindows(EnumWindowsCallback, IntPtr.Zero);
}
static bool EnumWindowsCallback(IntPtr hWnd, IntPtr lParam)
{
const int nChars = 256;
System.Text.StringBuilder buff = new System.Text.StringBuilder(nChars);
if (GetWindowText(hWnd, buff, nChars) > 0)
{
string windowTitle = buff.ToString();
if (windowTitle.Contains("子窗口标题关键词"))
{
Console.WriteLine(windowTitle);
}
}
return true;
}
}
在以上代码中,EnumWindowsCallback
方法会被EnumWindows
函数调用来处理每个窗口,其中会通过GetWindowText
函数获取窗口标题,并通过判断标题包含特定关键词来筛选出需要的子窗口。