private void GetAllProcesses() { var activeProcceses = Process.GetProcesses(); int activeApplicationCount = 0; foreach (Process process in activeProcceses) { if (process.MainWindowHandle != IntPtr.Zero && process.Id != Process.GetCurrentProcess().Id) { string path = string.Empty; try { path = GetPathFromProcessId(process); if (path != string.Empty) { ProcessExplorerEntry processEntry = new ProcessExplorerEntry(path, Icon.ExtractAssociatedIcon(path), process); backgroundWorker.ReportProgress(++activeApplicationCount, processEntry); } } catch (Exception ex) { VibranceGUI.Log(ex); } } } }