Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# - Get list of open tasks

I'm trying to find a way to get the open tasks in C#. I've been searching on google and can only find how to get a list of the processes. I want the only the tasks that would show up on the taskbar.

Also, along with that, it would be cool if I could get the process the task is associated with. And if possible get the thumbnail images that Vista uses for the ALT-TAB menu, like in this image:

alt-tab

I assume that I will have to use pinvokes because it really doesn't look like there are any libraries to do this already. Any ideas?

like image 249
Joel Avatar asked Nov 21 '08 22:11

Joel


1 Answers

This article should pretty much tell you exactly what to do, it shows how to build your own task switch and includes the code needed to enumerate all windows and determine if they are "tasks" and it shows you how to use PrintWindow api to get the previews on XP.

http://msdn.microsoft.com/en-us/library/ms997649.aspx

Also, here is a blog post that talks about the algorithm used to determine what shows up in the Alt+Tab view. Basically you need to check the WS_EX_APPWINDOW and WS_EX_TOOLWINDOW along with if the window has an owner.

like image 162
Maurice Flanagan Avatar answered Oct 08 '22 07:10

Maurice Flanagan