我想結束所有可見(包括最小化)窗口的列表(或數組或其他)。在Windows XP上,我如何枚舉系統顯示的所有窗口(C#)
我已經找到2個類似的問題,這不相當給我什麼我在尋找:
- Work out which windows go in the alt-tab list
- list windows in another user's session
感謝。
我想結束所有可見(包括最小化)窗口的列表(或數組或其他)。在Windows XP上,我如何枚舉系統顯示的所有窗口(C#)
我已經找到2個類似的問題,這不相當給我什麼我在尋找:
- Work out which windows go in the alt-tab list
- list windows in another user's session
感謝。
如何獲取進入alt-tab列表的進程列表。 (運行包含的窗口過程):
using System.Diagnostics.Process;
List<Process> plist = new List<Process>();
foreach (Process p in Process.GetProcesses())
{
string title = p.MainWindowTitle;
if (!String.IsNullOrEmpty(title))
{
plist.Add(p);
}
}
我認爲,雷蒙陳博客條目指出,在第一個鏈接給你,你想要去的想法。基本上,你會調用EnumWindows,然後應用該算法,除了你會注意到每個可見的窗口句柄。
這個問題有點含糊,這裏的目的是什麼(給出更多信息可能有更好的方法)。
只需使用EW()API(Win32的FAQ)
從理論上講,你這樣做是正確的,但也有在你的代碼兩個錯誤。首先,創建列表時出現語法錯誤: 列表 plist = new列表(); 其次,在你的if語句中,如果你只檢查null的標題,你會得到所有的進程。如果(!String.IsNullOrEmpty(title))有效。 –
BFree
2009-01-06 14:30:04
感謝您注意到 - 我修復了代碼。我想這就是當你在沒有先測試的情況下在代碼中敲出代碼時會發生什麼=) – Rich 2009-01-06 15:48:38