如何通过C#枚举子窗口

avatar
作者
猴君
阅读量:0

通过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函数获取窗口标题,并通过判断标题包含特定关键词来筛选出需要的子窗口。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!