[python-win32] How to find the current/last system state from Python
Tim Golden
mail at timgolden.me.uk
Wed Jul 4 09:24:22 CEST 2012
On 04/07/2012 06:01, prashant padaganur wrote:
> On 03/07/2012 12:23, prashant padaganur wrote:
>>>/
> />>/ I want to write an application that puts the system in to different
> />>/ sleep states. Like S0,S1...S4.
> />>/
> />>/ Before changing from one state to another I want to know the
> />>/ current/previous sleep state.
> />>/
> />>/ For Ex: If the current state is S0 then I want to put it to S1. Or if
> />>/ the previous state was S3 then I want to put the system to S4.
> />>/
> />>/ I want to know how can I get this state info from python using Win32
> />>/ apis. The related struct I found on MSDN is SYSTEM_POWER_STATE
> />>/
> />>/ http://msdn.microsoft.com/en-us/library/windows/desktop/aa373227(v=vs.85).aspx
> />
>>Chances are that WMI can do it: try Googling for "WMI power management"
>>or something similar
>>
>>TJG
>
> No luck so far. If anyone has done something similar please share your thoughts.
Well I haven't, but I Googled for "WMi power management", found this as
the 3rd hit:
http://www.vbsedit.com/scripts/desktop/info/scr_233.asp
which led me to look at this page in MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394102%28v=vs.85%29.aspx
and the PowerState attribute:
"""
PowerState
Data type: uint16
Access type: Read-only
Current power state of a computer and its associated operating
system. The power saving states have the following values: Value 4
(Unknown) indicates that the system is known to be in a power save mode,
but its exact status in this mode is unknown; 2 (Low Power Mode)
indicates that the system is in a power save state, but still
functioning and may exhibit degraded performance; 3 (Standby) indicates
that the system is not functioning, but could be brought to full power
quickly; and 7 (Warning) indicates that the computer system is in a
warning state and a power save mode. This property is inherited from
CIM_UnitaryComputerSystem.
Value Meaning
0 (0x0)
Unknown
1 (0x1)
Full Power
2 (0x2)
Power Save - Low Power Mode
3 (0x3)
Power Save - Standby
4 (0x4)
Power Save - Unknown
5 (0x5)
Power Cycle
6 (0x6)
Power Off
7 (0x7)
Power Save - Warning
"""
which looks to me very similar to the SYSTEM_POWER_STATE struct you
referenced from MSDN. Can you say whether this is what you're looking for?
<code>
import wmi
c = wmi.WMI()
for sys in c.Win32_ComputerSystem():
print sys.PowerState
</code>
TJG
More information about the python-win32
mailing list