2010-12-09 64 views

回答

14

您可以使用Process.GetProcesses method來提供有關當前在您的計算機上運行的所有進程的信息。

但是,這顯示了所有正在運行的進程,包括不一定顯示在任務欄上的進程。所以,你需要做的是過濾掉那些擁有空MainWindowTitle .The流程上面鏈接的文檔解釋了爲什麼這個工程:

進程有一個主窗口相關 它只有在過程中有一個 圖形界面。如果關聯的 進程沒有主窗口 (以便MainWindowHandle爲零),則 MainWindowTitle是一個空字符串 (「」)。

所以,你可以使用類似下面的代碼,這將打印出(到控制檯窗口)全部是你的任務欄上顯示當前運行的應用程序的列表:

Process[] processes = Process.GetProcesses(); 
foreach (var proc in processes) 
{ 
    if (!string.IsNullOrEmpty(proc.MainWindowTitle)) 
     Console.WriteLine(proc.MainWindowTitle); 
} 
+0

+1:好答案。 – 2010-12-09 06:51:27