按流程获取电池使用情况

我有一个代码(在c#中)用于管理我的计算机中的所有进程。

我使用PerformanceCounter类来查找在一个特定进程中链接的所有值。

例如,此代码重新启动了firefox的Processor Time用法:

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使用率没有直接关系。 它可能是硬盘活动,图形芯片等。 因此,无法计算每个过程的足够电池使用量。