C# 使用C枚举windows XP中任务栏上的窗口,而不使用P/Invoke#
是否有任何方法仅检索任务栏上的窗口C# 使用C枚举windows XP中任务栏上的窗口,而不使用P/Invoke#,c#,.net,windows-xp,taskbar,C#,.net,Windows Xp,Taskbar,是否有任何方法仅检索任务栏上的窗口 我想制作一个自定义的“任务栏”,它可以按任意顺序对应用程序进行分组(而不仅仅是按默认的windows任务分组这样的普通顺序)。一般来说,没有p/Invoke--no 但是,如果您只关心.NET进程中的托管Windows窗体窗口,则可以循环使用Application.OpenForms并检查属性,尤其是Form.ShowInTaskbar。对于WPF,它是Application.Windows您必须使用p/Invoke。不幸的是,没有标准的方法来确定窗口是否会出
我想制作一个自定义的“任务栏”,它可以按任意顺序对应用程序进行分组(而不仅仅是按默认的windows任务分组这样的普通顺序)。一般来说,没有p/Invoke--no
但是,如果您只关心.NET进程中的托管Windows窗体窗口,则可以循环使用
Application.OpenForms
并检查属性,尤其是Form.ShowInTaskbar
。对于WPF,它是Application.Windows
您必须使用p/Invoke。不幸的是,没有标准的方法来确定窗口是否会出现在任务栏(或alt+tab)中:您只能猜测
下面是VB中一个非常古老的示例:
在年,我以类似的方式实现了它。您可以查看(签出
OnTopReplica/WindowSeekers/TaskWindowSeeker.cs
)。我想复制任务栏项目。到目前为止,对于p/invoke,我能够准确地猜测,但这只是猜测。例如,计算器不是应用程序窗口。即使它显示在任务栏中,我也必须明确检查字符串“Calculator”,这不是好代码。我希望有办法确定,但我找不到。