private void CreateGrid() { processesGridView.DataSource = null; var processes = Win32Process.GetProcesses().Where(x => IncludeInGrid(x)).ToList(); var data = processes.Select(x => new { x.ProcessId, x.CommandLine, x.CreationDate, Program = ParseProgram(x.CommandLine) }).ToList(); processesGridView.DataSource = data; processesGridView.ClearSelection(); processesGridView.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; processesGridView.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; processesGridView.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; processesGridView.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; for (var i = 0; i <= processesGridView.Columns.Count - 1; i++) { var colw = processesGridView.Columns[i].Width; processesGridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; processesGridView.Columns[i].Width = colw; } if (!data.Any()) { return; } processesGridView.Rows[0].Selected = true; }
private bool IncludeInGrid(Win32Process process) { if (showAllCheckBox.Checked) { return(true); } // Hide processes with empty commandline if (string.IsNullOrWhiteSpace(process.CommandLine)) { return(false); } // Hide processes without specific dll if (!process.CommandLine.Contains(".dll", StringComparison.InvariantCultureIgnoreCase)) { return(false); } if (process.CommandLine.Contains("dotnet-watch.dll", StringComparison.InvariantCultureIgnoreCase)) { return(false); } if (process.CommandLine.Contains("VBCSCompiler", StringComparison.InvariantCultureIgnoreCase)) { return(false); } if (process.CommandLine.Contains("rzc.dll", StringComparison.InvariantCultureIgnoreCase)) { return(false); } return(true); }