需要引用
using System.Diagnostics;
直接就是TABLE了绑定TABLE就好了
dataGridView1.DataSource = GetProcessModulesList();
- /// <summary>
- /// 获取进程类别
- /// </summary>
- /// <returns>返回TABLE SortID 进程ID 父ID(***为父进程,关联到SortID) 进程程序名 进程路径</returns>
- public static DataTable GetProcessModulesList()
- {
- DataTable _Table = new DataTable("Process");
- _Table.Columns.Add("SortID");
- _Table.Columns.Add("ID");
- _Table.Columns.Add("PrId");
- _Table.Columns.Add("Name");
- _Table.Columns.Add("FileName");
- Process[] _AllProcesses = Process.GetProcesses();
- int _Index = 0;
- for (int i = 0; i != _AllProcesses.Length; i++)
- {
- ProcessModule _OneProcessModule;
- if (_AllProcesses[i].Id != 4 && _AllProcesses[i].Id != 0)
- {
- ProcessModuleCollection _OneProcessModuleCollection = _AllProcesses[i].Modules;
- _OneProcessModule = _AllProcesses[i].MainModule;
- _Index = _Table.Rows.Count;
- _Table.Rows.Add(new string[] { _Table.Rows.Count.ToString(), _AllProcesses[i].Id.ToString(), "***", _OneProcessModule.ModuleName, _OneProcessModule.FileName });
- for (int z = 0; z < _OneProcessModuleCollection.Count; z++)
- {
- _OneProcessModule = _OneProcessModuleCollection[z];
- _Table.Rows.Add(new string[] { _Table.Rows.Count.ToString(), _AllProcesses[i].Id.ToString(), _Index.ToString(), _OneProcessModule.ModuleName, _OneProcessModule.FileName });
- }
- }
- }
- return _Table;
- }