我知道如何使用wmi,我之前使用过它,但是,似乎我需要调用的wmi类是GetSystemPowerStatus。但我在查找和记录时遇到了问题。为了能够访问它,我需要知道名称空间以及类中数据的格式。有人可以帮助我吗?还有一些示例代码会很好。在python中使用wmi获取电池状态?
1
A
回答
5
使用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
):使用wmi
package
from win32com.client import GetObject
WMI = GetObject('winmgmts:')
for battery in WMI.InstancesOf('Win32_Battery'):
print(battery.EstimatedChargeRemaining)
备选:
import wmi
w = wmi.WMI()
for battery in w.query('select * from Win32_Battery'):
print battery.EstimatedChargeRemaining
0
```
import subprocess
wmic = subprocess.getoutput("wmic path win32_battery get EstimatedChargeRemaining")
print(wmic)
```
输出:
EstimatedChargeRemaining
96
相关问题
- 1. 如何使用WMI从WPF应用程序获取电池充电状态?
- 2. 获取电池状态
- 3. MAC OSX-如何使用python获取电池百分比状态?
- 4. 如何获取电池状态?
- 5. 从J2ME获取电池状态
- 6. 获取没有WMI的电池信息
- 7. 在C#中使用WMI获取Windows服务器状态
- 8. OSX中的电池状态?
- 9. android中的电池状态
- 10. 电池充电状态c#
- 11. 使用Swing执行电池状态
- 12. Mac - 获取电池/充电状态(插入或不插入)
- 13. 使用WMI的电池FullChargeCapacity返回0
- 14. 获取ios中每次更改的电池状态
- 15. 从Android中的服务获取电池状态
- 16. ACTION_POWER_CONNECTED上的电池状态
- 17. 检查电池状态6.5
- 18. BackgroundTask触发电池状态
- 19. Android AppWidget电池状态
- 20. Windows Phone电池状态
- 21. 使用服务获取电池电量
- 22. 在Windows中开发C#应用程序来获取Android电池状态
- 23. 在Java中获取Windows充电状态
- 24. 使用win32 API读取Windows CE的电池状态
- 25. SocketScan在Swift中获取电池电量
- 26. 是否有任何Android API获取CPU和电池状态?
- 27. 电池状态始终不充电
- 28. 电池拉动后的应用状态
- 29. 用NodeMCU检查电池状态?
- 30. 在Android服务中使用BroadcastReceiver获取电池电量
我不能使用WMI做到这一点?帽子会简单得多。这些代码中的一部分仅仅是我的头脑,我想了解我正在使用的代码,而不是在不知道它是什么的情况下使用它。 – user1803425
@ user1803425,'GetSystemPowerStatus'是win32 api。你不能用WMI调用它。 – falsetru
@ user1803425,我更新了答案以包含使用WMI的代码。你需要安装[pywin32](http://sourceforge.net/projects/pywin32/)。 – falsetru