private List<EnumWindows.WindowInfo> getWindowList(SortOrder order)
{
var processName = FilterByProcessName.Trim();
var windowList = EnumWindows.Enumerate();
if (!String.IsNullOrEmpty(processName))
{
var filteredList = new List<EnumWindows.WindowInfo>();
for (int ii = 0; ii < windowList.Count; ii++)
{
var process = WindowActivityMonitor.GetProcessForWindow(windowList[ii].Handle);
if (String.Compare(process.ProcessName, FilterByProcessName, true) == 0)
{
filteredList.Add(windowList[ii]);
}
}
windowList = filteredList;
}
var sortedList = sortWindowList(windowList, order);
if (String.IsNullOrEmpty(processName))
{
IntPtr desktopHWnd = User32Interop.GetDesktopWindow();
if (desktopHWnd != null)
{
sortedList.Insert(0, new EnumWindows.WindowInfo(desktopHWnd, Resources.ShowDesktop));
}
}
return sortedList;
}