我知道如何使用wmi,我之前使用过它,但是,我需要调用的Wmi类是GetSystemPowerStatus。但我无法找到并记录它。为了能够访问它,我需要知道命名空间,以及类中数据的格式。有人能帮助我吗?还有一些示例代码会很好。
答案 0 :(得分:6)
使用ctypes
,您可以调用win32 api:
from ctypes import *
class PowerClass(Structure):
_fields_ = [('ACLineStatus', c_byte),
('BatteryFlag', c_byte),
('BatteryLifePercent', c_byte),
('Reserved1',c_byte),
('BatteryLifeTime',c_ulong),
('BatteryFullLifeTime',c_ulong)]
powerclass = PowerClass()
result = windll.kernel32.GetSystemPowerStatus(byref(powerclass))
print(powerclass.BatteryLifePercent)
以上代码来自here。
使用Win32_Battery
class(您需要安装pywin32
):
from win32com.client import GetObject
WMI = GetObject('winmgmts:')
for battery in WMI.InstancesOf('Win32_Battery'):
print(battery.EstimatedChargeRemaining)
使用wmi
package的替代方案:
import wmi
w = wmi.WMI()
for battery in w.query('select * from Win32_Battery'):
print battery.EstimatedChargeRemaining
答案 1 :(得分:0)
```
import subprocess
wmic = subprocess.getoutput("wmic path win32_battery get EstimatedChargeRemaining")
print(wmic)
```
输出:
EstimatedChargeRemaining
96