c#如何获取cup,内存,硬盘的利用率?

ykai888 2007-07-18 10:23:37
如题,有做个这方面的吗?请给一下设计思路最好能提供代码,分不够在加.
...全文
1049 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
airlv 2012-05-25
  • 打赏
  • 举报
回复
这个我做过、和你的一模一样、当时我们老大让我做一个来记录服务器的...
http://download.csdn.net/detail/airlv/4323853
我把程序发在我的资源上面了...
jasperu 2011-02-03
  • 打赏
  • 举报
回复
我给你在MSDN上的一个地址啊。
http://msdn.microsoft.com/en-us/library/Aa394084

你再把
Windows Management Instrumentation (WMI)
搞一下,基本就明白了。
jasperu 2011-02-03
  • 打赏
  • 举报
回复
我以前做过。就是调用WIN32函数。。。

自己写的一个检测电池的程序,可以移植到窗体中进行检测的。。

2010年12月9日15:31:01

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Management;


namespace jasper_Program_电池类

{

class Program

{

static void Main(string[] args)

{

//----------------------------- 可以利用窗体完成的


ManagementClass manclass = new ManagementClass("Win32_Battery");

ManagementObjectCollection moc = manclass.GetInstances();// 返回的是所有的实例的集合

foreach (ManagementObject mo in moc)

{



switch (mo.Properties["Availability"].Value.ToString())

{

case "1": Console.WriteLine("电源设备的状态-------其他"); break;

case "2": Console.WriteLine("电源设备的状态-------未知"); break;

case "3":Console.WriteLine("电源设备的状态-------正在使用或正在充电"); break;

case "4":Console.WriteLine("电源设备的状态-------警告"); break;

}


// 这里不能强制转换成int类型的,所以要多注意了。

switch (mo.Properties["BatteryStatus"].Value.ToString())

{

case "1": Console.WriteLine("电池的状态是---- 正在使用电池"); break;

case "2": Console.WriteLine("电池的状态是----正在使用交流电"); break;

case "3": Console.WriteLine("电池的状态是----电池是满的"); break;

default: Console.WriteLine("其他状态"); break;



}

//---------------但是现在的这个已经过时了,咳,,


//Console.WriteLine("电池的充电时间为:"+(string)mo.Properties["BatteryRechargeTime"].Value);



//--- 表示一个d电源种类

Console.WriteLine("电池的供电种类----" + mo.Properties["Caption"].Value.ToString());


// Console.WriteLine("电池的构成种类-----"+mo.Properties["Chemistry"].Value.ToString());

//

switch (mo.Properties["Chemistry"].Value.ToString())

{

case "1": Console.WriteLine("电池的构成种类------其他"); break;

case "2": Console.WriteLine("电池的构成种类------未知"); break;

case "3": Console.WriteLine("电池的构成种类------酸铅材料"); break;

case "4": Console.WriteLine("电池的构成种类------镍镉"); break;

case "5": Console.WriteLine("电池的构成种类------镍氢 "); break;

case "6": Console.WriteLine("电池的构成种类------锂离子 "); break;

case "7": Console.WriteLine("电池的构成种类------ 锌空气"); break;

case "8": Console.WriteLine("电池的构成种类------ 锂聚合物"); break;

default: Console.WriteLine("未知,高科技材料"); break;

}

//try

//{

//----------------------开始在这里出现了异常了,是一个空引用的异常



// Console.WriteLine(mo.Properties["ConfigManagerErrorCode"].Name.ToString());

//-----上面的NAME属性是一个表示我们的属性的名字

//------------- 但是在这里出现了空引用异常了,怪事了。。咳,



// switch (mo.Properties["ConfigManagerErrorCode"].Value.ToString())

// {

// case "1": Console.WriteLine("电源运行状态是----运行良好"); break;

// case "2": Console.WriteLine("电源运行状态是----运行有误"); break;

// case "3": Console.WriteLine("电源运行状态是----windows不能加载这个设备的驱动"); break;

// case "4": Console.WriteLine("电源运行状态是----运行有误,可能设备注册已损坏"); break;

// case "5": Console.WriteLine("电源运行状态是----设备请求一个windows不能管理的资源"); break;

// case "6": Console.WriteLine("电源运行状态是----运行良好"); break;

// default: Console.WriteLine("电池运行有误....."); break;


//}

// }

//catch (ManagementException e)

//{

// Console.WriteLine("-----------------" + e.Message);

//}

//catch (NullReferenceException e)

//{

// Console.WriteLine("-----------异常没有设置对象的引用。。。");

//}





//////--------------------下面检测的是电源管理方案是用户的还是系统定义

//switch (mo.Properties["ConfigManagerUserConfig"].Value.ToString())

//{

// case "true": Console.WriteLine("电源管理类型为----用户自定义管理"); break;

// case "false": Console.WriteLine("电源管理类型为-------系统定义"); break;


//}


/// 设备描述

///

Console.WriteLine("设备描述------"+mo.Properties["Description"].Value.ToString());



//---设计容量 但是又是一个检测不到。咳。。。。。

//Console.WriteLine("电池设计容量----"+mo.Properties["DesignCapacity"].Value.ToString()+"mWh");


//---设置电压

Console.WriteLine("电池电压------"+Convert.ToInt64(mo.Properties["DesignVoltage"].Value.ToString())/1000.0+"V");


//---电源型号

Console.WriteLine("电池设计编号是------"+mo.Properties["DeviceID"].Value.ToString());



//充电剩余时间为

Console.WriteLine("电量状态是:" + mo.Properties["EstimatedChargeRemaining"].Value.ToString()+"%");


//---预计冲完电的时间是

Console.WriteLine("预计冲完电的时间 "+Convert.ToInt32(mo.Properties["EstimatedRunTime"].Value.ToString())/3600000.0);



// 完全使用玩的时候,需要充电的时间是 又是一个空引用,我靠

//Console.WriteLine("全部的充电时间是 "+mo.Properties["ExpectedBatteryLife"].Value.ToString());

//-------电池型号

// Console.WriteLine(mo.Properties["Name"].Value.ToString());



//------这里获取的是我们计算机的名字

Console.WriteLine(mo.Properties["SystemName"].Value.ToString());


}

}

}

}




forgetitit 2009-03-10
  • 打赏
  • 举报
回复
在mobile中如何实现?
cm8983 2007-09-14
  • 打赏
  • 举报
回复
学习
地下室小红叔 2007-09-14
  • 打赏
  • 举报
回复
学习
honey52570 2007-09-14
  • 打赏
  • 举报
回复
学习
tds__609 2007-09-14
  • 打赏
  • 举报
回复
典藏
applethink 2007-09-14
  • 打赏
  • 举报
回复
学习学习
loveniki 2007-09-14
  • 打赏
  • 举报
回复
学习,收藏
Arieslns 2007-09-14
  • 打赏
  • 举报
回复
强烈学习。
mysky0103 2007-09-14
  • 打赏
  • 举报
回复
mark
songle912 2007-09-14
  • 打赏
  • 举报
回复
楼上的都强,我没做过那东西
孟子E章 2007-09-14
  • 打赏
  • 举报
回复
你可以参考并下载源代码 《用C#开发较完整的Windows任务管理器 》
http://www.cnblogs.com/lemony/archive/2007/04/11/708309.html
junval 2007-09-14
  • 打赏
  • 举报
回复
调用COM组件可以!
PCI_E 2007-08-02
  • 打赏
  • 举报
回复
学习中
柳泉青云 2007-08-02
  • 打赏
  • 举报
回复
如何用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";
}

这是在我计算机上的计算结果:
Entering measurement loop.
CPU load = 0 %.
CPU load = 1.941746 %.
CPU load = 4.854369 %.
CPU load = 10 %.
CPU load = 0 %.
CPU load = 2.999997 %.
CPU load = 0.9900987 %.
CPU load = 0 %.

sansuihub 2007-08-02
  • 打赏
  • 举报
回复
学习
ykai888 2007-08-02
  • 打赏
  • 举报
回复
PerformanceCounter pc = new PerformanceCounter(CategoryName,CounterName,InstanceName);
while(true)
{
Thread.Sleep(1000);
float cupLoad = pc.NextValue();
this.txtCpu.Text = Convert.ToInt32(cupLoad).ToString();
}
现在主要的得到cpu的利用率没有解决,用上面的方法老是死机,请问高手还有别的方法得到cpu的利用率吗?
ykai888 2007-08-02
  • 打赏
  • 举报
回复
在顶一下
加载更多回复(6)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧