用C#实时获取CPU利用率:using System; using System.Diagnostics; using System.Threading;public class CpuLoadInfo { // auxiliary print methods private static void Say ( string txt ) { Console.WriteLine(txt); } // auxiliary print methods private static void Say() { Say(""); } // The main method. Command line arguments are ignored. [STAThread] public static void Main() { Say("$Id: CpuLoadInfo.cs,v 1.2 2002/08/17 17:45:48 rz65 Exp $"); Say(); Say("Attempt to create a PerformanceCounter instance:"); Say("Category name = " + CategoryName); Say("Counter name = " + CounterName); Say("Instance name = " + InstanceName); PerformanceCounter pc = new PerformanceCounter(CategoryName,CounterName,InstanceName); Say("Performance counter was created."); Say("Property CounterType: " + pc.CounterType); Say(); Say("Property CounterHelp: " + pc.CounterHelp); Say(); Say("Entering measurement loop."); while (true) { Thread.Sleep(1000); // wait for 1 second float cpuLoad = pc.Nextvalue(); Say("CPU load = " + cpuLoad + " %."); } } // constants used to select the performance counter. private const string CategoryName = "Processor"; private const string CounterName = "% Processor Time"; private const string InstanceName = "_Total"; }
TO jxufewbt(我的目标是5星) 这个我也在网上有搜索到,不过我想要的是获取单个进程的CPU使用率
CPU使用率是算出来的... 用户名呢...我只知道有一种方法是用WMI的Win32_Process里面的一个GetOnwer方法得到的... 参考VBScript: strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48) For each Proc in colItems a="" b="" Proc.GetOwner a,b WScript.Echo "OwnerDomain\Name : " & b & "\" & a Next 转成C#代码就可以了...
using System.Diagnostics;
using System.Threading;public class CpuLoadInfo
{
// auxiliary print methods
private static void Say ( string txt )
{
Console.WriteLine(txt);
} // auxiliary print methods
private static void Say()
{
Say("");
} // The main method. Command line arguments are ignored.
[STAThread]
public static void Main()
{
Say("$Id: CpuLoadInfo.cs,v 1.2 2002/08/17 17:45:48 rz65 Exp $");
Say(); Say("Attempt to create a PerformanceCounter instance:");
Say("Category name = " + CategoryName);
Say("Counter name = " + CounterName);
Say("Instance name = " + InstanceName);
PerformanceCounter pc
= new PerformanceCounter(CategoryName,CounterName,InstanceName);
Say("Performance counter was created.");
Say("Property CounterType: " + pc.CounterType);
Say(); Say("Property CounterHelp: " + pc.CounterHelp);
Say();
Say("Entering measurement loop."); while (true)
{
Thread.Sleep(1000); // wait for 1 second
float cpuLoad = pc.Nextvalue();
Say("CPU load = " + cpuLoad + " %.");
}
} // constants used to select the performance counter.
private const string CategoryName = "Processor";
private const string CounterName = "% Processor Time";
private const string InstanceName = "_Total";
}
用户名呢...我只知道有一种方法是用WMI的Win32_Process里面的一个GetOnwer方法得到的...
参考VBScript:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48)
For each Proc in colItems
a=""
b=""
Proc.GetOwner a,b
WScript.Echo "OwnerDomain\Name : " & b & "\" & a
Next
转成C#代码就可以了...