使用C#在没有P / Invoke的情况下在Windows XP中的任务栏上枚举窗口

时间:2010-10-29 22:51:09

标签: c# .net windows-xp taskbar

是否有任何方法只检索任务栏上的窗口?

我想创建一个自定义“任务栏”,它将按任意顺序对APP进行分组(不仅仅是按照默认窗口任务分组的常见顺序)。

2 个答案:

答案 0 :(得分:1)

你必须使用P / Invoke。不幸的是,没有标准的方法来确定窗口是否会出现在任务栏中(或者在alt + tab中):你只能猜测。

这是VB中一个很老的例子:http://www.thescarms.com/VBasic/alttab.aspx

OnTopReplica中,我以类似的方式实现了它。您可以查看source code(查看OnTopReplica/WindowSeekers/TaskWindowSeeker.cs)。

答案 1 :(得分:0)

一般情况下,没有P / Invoke - 没有。

但是,如果您只关心.NET进程中的托管Windows窗体,则可以遍历Application.OpenForms并检查属性,尤其是Form.ShowInTaskbar。对于WPF,它是Application.Windows