python - 在 python 中使用 wmi 获取电池状态?

标签 python class python-2.7 wmi batterylevel

我知道如何使用 wmi,我以前用过它,但是,我似乎需要调用的 wmi 类是 GetSystemPowerStatus。但我无法找到它的文档。为了能够访问它,我需要知道命名空间和类中数据的格式。有人可以帮助我吗?还有一些示例代码会很好。

最佳答案

使用 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

关于python - 在 python 中使用 wmi 获取电池状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083518/

相关文章:

java - 线程 "main"java.lang.Error : Unresolved compilation problem (Edx Course example) 中出现异常

python-2.7 - 有没有一个好的、简单的、没有依赖关系的 Python 图表库?

python - 如何使用十六进制 Ascii 中特定位数的字符串格式

python - 在 Python 中删除停用词

python - 如何将鼠标按钮选择存储在列表中?

python - 如何在 Celery 任务执行期间强制记录器格式?

c++ - 我的双向链表项目出现 c2955 错误

python - 对 setup.py 中的 package_dir 和 packages 设置感到困惑

c# - 在 mvvm 问题中创建类结构

python - 在文本文件中查找一个点并在 Python 中向该文件添加一个换行符?