C# 获取当前在windows任务栏中可见的应用(或窗口)列表

C# 获取当前在windows任务栏中可见的应用(或窗口)列表,c#,.net,windows,winapi,taskbar,C#,.net,Windows,Winapi,Taskbar,我需要找到当前显示在Windows任务栏中的项目列表 我知道如何获取活动进程或顶级窗口的列表,但那不行。 有些出现在任务栏中,有些则没有。 应用程序可能有顶级窗口,但仍不显示在任务栏中 我曾试图枚举任务栏的所有子窗口,但也没有走多远 我不介意获得窗口(或图标)句柄列表或进程列表。您能告诉我们为什么需要它吗?为什么您需要任务栏中可见的窗口,而不是所有顶级窗口的列表?我需要确定生成的第三方应用何时进入特定状态。该状态与该应用程序在任务栏中变得可见相关。它已经在运行,但在进入我感兴趣的状态之前,它在任

我需要找到当前显示在Windows任务栏中的项目列表

我知道如何获取活动进程或顶级窗口的列表,但那不行。 有些出现在任务栏中,有些则没有。 应用程序可能有顶级窗口,但仍不显示在任务栏中

我曾试图枚举任务栏的所有子窗口,但也没有走多远


我不介意获得窗口(或图标)句柄列表或进程列表。

您能告诉我们为什么需要它吗?为什么您需要任务栏中可见的窗口,而不是所有顶级窗口的列表?我需要确定生成的第三方应用何时进入特定状态。该状态与该应用程序在任务栏中变得可见相关。它已经在运行,但在进入我感兴趣的状态之前,它在任务栏中不可见。您能否向我们展示一些代码,以显示您到目前为止拥有的功能,以便我们可以帮助您调试?我还没有解决问题的方法,因此没有需要修改的代码。如果您只对一个应用程序感兴趣,使用Spy++检查它的状态,并找出它如何使自己出现在任务栏中。很可能,它正在修改
WS_EX_APPWINDOW
WS_EX_TOOLWINDOW
样式。然后,您可以使用我在回答中详述的方法的简化版本来枚举所有顶级窗口,并检查您感兴趣的窗口现在是否在任务栏中可见。