在Windows XP上,如何枚举系统显示的所有窗口(C#)

我想最终得到所有可见(包括最小化)窗口的列表(或数组或其他)。

我找到了2个类似的问题,这些问题并没有给我提供我想要的东西:
– 确定哪些窗口位于alt-tab列表中
– 在另一个用户的会话中列出窗口

谢谢。

我认为Raymond Chen在第一个链接中指出的博客条目让你知道你想去哪里。 基本上,你会调用EnumWindows然后应用该算法,除了你会注意到每个可见的窗口句柄。

问题有点模糊,这里的目的是什么(给出更多信息可能有更好的方法)。

如何获取进入alt-tab列表的进程列表。 (运行包含窗口的进程):

using System.Diagnostics.Process; List plist = new List(); foreach (Process p in Process.GetProcesses()) { string title = p.MainWindowTitle; if (!String.IsNullOrEmpty(title)) { plist.Add(p); } } 

只需使用EW()api(win32 FAQ)