日期:2014-05-17  浏览次数:20955 次

.net 进程名获取
想实现一个获取自定义输入一个进程名,获取该进程占用系统的CPU以及内存使用率。
求大神指教

------解决方案--------------------
http://stackoverflow.com/questions/8462331/i-need-to-call-accurate-cpu-usage-of-a-single-process


------解决方案--------------------
引用:
一点点的源码··我以前也做过··


float cpuData = 0; // Cpu
                float Meming = 0; // 内存
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Process Where ParentProcessID=" + Global.process.Id);
                ManagementObjectCollection moc = searcher.Get();
                foreach (ManagementObject mo in moc) {
                    Process p = Process.GetProcessById(Convert.ToInt32(mo["ProcessID"]));
                    Meming += p.WorkingSet64  / 1024 / 1024; // 内存的用量
                    PerformanceCounter proccessCpu = new PerformanceCounter("Process", "% Processor Time", p.ProcessName);
                    cpuData += proccessCpu.NextValue() / Environment.ProcessorCount; // CPU的使用率
                }


 Global.process.Id 即 你进程的ID

根据进程名获取进程ID:


 Process[] pros = Process.GetProcesses();
                foreach (Process pro in pros) {
                    if (string.Equals(pro.ProcessName, "你的进程的名")) {
                        proId = pro.ProcessId;
            &