I read the API tip about getting the current task list, but that lists EVERYTHING. Can i modify the function (below) or use a different one to return only the processes that are actual programs Windows lists on the task bar?

For arguments sake, im attempting to write a replacement for the taskbar.

Function GetTaskList() As String
Dim CurrWnd As Long
Dim Length As Long
Dim TaskName As String
Dim Parent As Long
Dim Ret As String
Dim NumTasks As Byte

Ret = Chr(0)

CurrWnd = GetWindow(frmMain.hwnd, GW_HWNDFIRST)

While CurrWnd <> 0
Parent = GetParent(CurrWnd)
Length = GetWindowTextLength(CurrWnd)
TaskName = Space$(Length + 1)
Length = GetWindowText(CurrWnd, TaskName, Length + 1)
TaskName = Left$(TaskName, Len(TaskName) - 1)
If Length > 0 Then
If TaskName <> frmMain.Caption Then
Ret = Ret & TaskName & Chr(0)
NumTasks = NumTasks + 1
End If
End If
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
DoEvents
Wend

On Error GoTo 0
Ret = NumTasks & Ret
GetTaskList = Ret
End Function



------------------
-Mystiq