- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有没有办法用PS获取CPU功耗? Open Hardware Monitor显然有办法返回该数字,但我无法在 OHM's source 中找到相关代码.
最佳答案
我在存储库中搜索“温度”并找到了这个示例:https://github.com/openhardwaremonitor/openhardwaremonitor/blob/da432ef07cf125c019afd3a27f447da428404611/Hardware/LPC/W836XX.cs
它似乎需要特定于设备的类,例如用于 HP 和 Fujitsu 系统的 OpenHardwareMonitor.Hardware.LPC.W836XX
或用于例如,许多显卡使用的 F75375
芯片。这些类知道数据可访问的 IO 端口和内存地址,因此 Windows(或 PowerShell)中没有标准 API 所有设备都将其硬件统计信息放在:所以这种情况非常相似在 DirectSound 和 OpenAL 之前的 1990 年代初期,PC 声卡的情况如何。
读取原始数据是通过此文件 ( https://github.com/openhardwaremonitor/openhardwaremonitor/blob/da432ef07cf125c019afd3a27f447da428404611/Hardware/Ring0.cs ) 中的代码完成的,它似乎将硬件驱动程序加载到操作系统中,然后使用 IOCtrl (DeviceIOControl
) 与其交换消息。
驱动程序 WinRing0.sys
的源代码位于同一存储库中,位于以下位置:https://github.com/openhardwaremonitor/openhardwaremonitor/tree/master/External/WinRing0
至于您的实际问题:如果您使用 PowerShell 的能力直接与 .NET 对象交互,您可以通过 PowerShell 获取您想要的数据 - 您只需直接从 PowerShell 中调用 OpenHardwareMonitor 的类方法,但您需要运行具有提升权限的 PowerShell,因此 OpenHardwareMonitor 代码可以安装 Ring0
驱动程序,使其能够读取每个芯片的值。
一个更好的想法可能是编写一个 Windows 服务,通过非管理员 PowerShell 实例可以从中读取的一些共享管道公开此数据。
对于 CPU 功耗,在 Hardware/CPU
下,然后为系统中的 CPU 选择正确的类别。对于 IntelCPU
,请查看 MSR_RAPL_POWER_UNIT
的使用。
关于windows - 如何在 PowerShell 中获取 CPU 功耗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49202065/
我是一名优秀的程序员,十分优秀!