デスクトップ上のすべてのメイン・ウィンドウを列挙する

foreach (Process p in Process.GetProcesses()) {
   if (p.MainWindowHandle != IntPtr.Zero) {
       Console.WriteLine(p.ProcessName
           + " : " + p.MainWindowTitle);
   }
}

出力例:
vim : VIM - C:\c#\tips\enumwin\enumwin.cs
explorer : C:\bin
NetCaptor : NetCaptor
OUTLOOK : 予定表 - Microsoft Outlook
cmd : コマンド プロンプト - enumwin
iexplore : @IT:Insider.NET - Microsoft Internet Explorer

p.ProcessNameがソフト名で
p.MainWindowTitleはウィンドウの名前
最終更新:2010年06月12日 17:59