<p>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 <strong>processes</strong>.  I want the only the tasks that would show up on the taskbar.</p>

<p>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:</p>

<p><a href="https://i.stack.imgur.com/CcPQP.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/CcPQP.png" alt="alt-tab"></a></p>

<p>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?</p>

From an API (Win32) perspective there is no such thing as Tasks (at least not the one that Windows Task Manager/Alt-Tab shows).
Those "Tasks" are actually top level windows.
So in order to get a list of those, you need to
enumerate the windows
(here is the
PInvoke
for it).
Then look at the style of the windows to determine if they are actually top level windows.