我知道如何使用 wmi,我以前使用过它,但是,我似乎需要调用的 wmi 类是 GetSystemPowerStatus。但我在查找和记录它时遇到了麻烦。为了能够访问它,我需要知道命名空间以及类内数据的格式。有人可以帮助我吗?还有一些示例代码会很好。
问问题
2007 次
2 回答
7
使用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)
上面的代码来自这里。
使用Win32_Battery
类(您需要安装pywin32
):
from win32com.client import GetObject
WMI = GetObject('winmgmts:')
for battery in WMI.InstancesOf('Win32_Battery'):
print(battery.EstimatedChargeRemaining)
使用wmi
包的替代方案:
import wmi
w = wmi.WMI()
for battery in w.query('select * from Win32_Battery'):
print battery.EstimatedChargeRemaining
于 2014-01-13T03:50:06.887 回答
0
```
import subprocess
wmic = subprocess.getoutput("wmic path win32_battery get EstimatedChargeRemaining")
print(wmic)
```
输出:
EstimatedChargeRemaining
96
于 2017-12-04T00:48:10.690 回答