C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法

2019-12-30 13:46:17王振洲

编写方法


/// <summary>
/// 获得桌面所有窗口句柄的方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
  dataGridView1.Rows.Clear();
  //1、获取桌面窗口的句柄
  IntPtr desktopPtr = GetDesktopWindow();
  //2、获得一个子窗口(这通常是一个顶层窗口,当前活动的窗口)
  IntPtr winPtr = GetWindow(desktopPtr, GetWindowCmd.GW_CHILD);
  //3、循环取得桌面下的所有子窗口
  while (winPtr != IntPtr.Zero)
  {
    //4、继续获取下一个子窗口
    winPtr = GetWindow(winPtr, GetWindowCmd.GW_HWNDNEXT);
  }
}

 

希望本文所述对大家C#程序设计有所帮助。


注:相关教程知识阅读请移步到c#教程频道。