您的位置:首页 > 其它

.NET 获取进程信息的方法.

2009-01-06 08:43 375 查看
需要引用 
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;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net table