Enumerate windows on taskbar in Windows XP without P/Invoke using C#
Is there any method of retrieving only windows on the taskbar?
I want to make a开发者_开发知识库 custom "taskbar" that will group APPs in any order (not just in common order like default windows task grouping).
You'll have to use P/Invoke. Unfortunately, there is no standard way to determine whether a window would appear in the taskbar (or in alt+tab): you can only guess.
Here's a pretty old example in VB: http://www.thescarms.com/VBasic/alttab.aspx
And in OnTopReplica, I implemented it in a similar manner. You can take a look at the source code (check out OnTopReplica/WindowSeekers/TaskWindowSeeker.cs
).
Generally, without P/Invoke -- no.
However, if you only care about managed, Windows Forms windows that are within your .NET process, you can loop through Application.OpenForms
and examine properties, especially Form.ShowInTaskbar
. For WPF, it is Application.Windows
.
精彩评论