获取具有任务栏图标的所有窗口

时间:2011-10-14 20:45:58

标签: c# windows process enums taskbar

我正在尝试获取仅具有任务栏图标的应用程序的所有窗口句柄。

我已转换为失败的C#的解决方案:

Enumerate windows like alt-tab does

Enumerate windows like alt-tab does

Enumerate windows like alt-tab does

还有一对我已经忘记了。 所有这些解决方案都会崩溃或带来无窗口进程,如svchost,插件进程等。

基本上我只需要带有图标的任务栏中主动可用的窗口。 我正在使用

的窗口句柄
Process.MainWindowHandle

对此有哪些有用的解决方案?是否有一个我错过的工作解决方案的主题?

1 个答案:

答案 0 :(得分:1)

尝试检索设置MainWindowTitle属性的所有进程。

它不是一种特别优雅的解决方案,但它对我有用,只带回那些在任务栏中运行且明显打开的应用程序。

List<Process> taskBarProcesses = Process.GetProcesses().
                                         Where(p => !string.IsNullOrEmpty(p.MainWindowTitle))
                                         .ToList();