Eine Liste der aktiven Anwendungen bringt dir nicht viel, da du dann davon jeweils noch die "sichtbaren" Fenster suchen darfst.
Aber es gibt natürlich schon unmassen Tutorials/Beiträge/Posts, zu diesem Thema des Pogramme-auflistens:
delphi anwendungen auflisten
Also dann doch gleich die Fenster suchen.
Wenn man weiß, was man sucht:
FindWindow/
FindWindowEx
Wenn man nach "allem" suchen will:
EnumWindows
In deinem Fall suchst du natürlich nach allen Top-Level-Fenstern (ohne einen Parent)
und davon auch nur die Sichtbaren (
IsWindowVisible)-.
Und um das jeweilige Fenster zu aktivieren:
SetFocus
SetForegroundWindow