private void getInitialWindows() { EnumWindows((hwnd, lParam) => { ApplicationWindow win = new ApplicationWindow(hwnd); // set window category if provided by shell win.Category = TaskCategoryProvider?.GetCategory(win); if (win.CanAddToTaskbar && win.ShowInTaskbar && !Windows.Contains(win)) { Windows.Add(win); } return(true); }, 0); IntPtr hWndForeground = GetForegroundWindow(); if (Windows.Any(i => i.Handle == hWndForeground && i.ShowInTaskbar)) { ApplicationWindow win = Windows.First(wnd => wnd.Handle == hWndForeground); win.State = ApplicationWindow.WindowState.Active; win.SetShowInTaskbar(); } }
private void CategoriesChanged() { foreach (ApplicationWindow window in Windows) { if (window.ShowInTaskbar) { window.Category = TaskCategoryProvider?.GetCategory(window); } } }