按进程获取电池使用情况
问题描述:
我有一个代码(在C#中)用于管理我的计算机上的所有进程。按进程获取电池使用情况
我使用PerformanceCounter类来查找在一个特定过程中链接的所有值。
有关示例,该代码retrived用于Firefox的处理器使用时间:
PerformanceCounter processorTime = new PerformanceCounter("Process", "% Processor Time", "firefox");
double processTime = 0;
while(true){
processTime = processorTime.NextValue();
}
而且,我知道如何取回我的电池的百分比:
PowerStatus power = SystemInformation.PowerStatus;
float secondsRemaining = power.BatteryLifePercent;
if (secondsRemaining >= 0)
{
kpiBattery.batteryLevel = (secondsRemaining * 100).ToString();
}
我想要得到的用法电池BY PROCESS,而不是全球。
例如,在使用“firefox”的过程中,谁使用了多少电池?
我知道我希望在过程开始时以及过程中断时取得电池电量,并且有所作为,但是,它不是真正的电池使用等级,因为在开始和结束时间过程之间,可能很多其他过程正在运行,并且也消耗电池。
如果您有任何想法,或者如果您知道解决方案,我非常感兴趣。
谢谢。
答
正如您已经说过的,许多过程可以同时运行。而且,电池使用量与CPU使用率没有直接关系。它可能是硬盘活动,图形芯片等。所以,没有办法计算每个过程的充足电池使用量。
+0
好的,谢谢你解释,这太可惜了:'( – 2012-07-31 11:57:39
这不可能没有估计,因为操作系统不能问主板什么是每个上下文切换的电池水平,就像它的时间。 – Dani 2012-07-31 10:13:14