[python-win32] Power management functions in pywin32?
Radek Holý
radekholypublic at gmail.com
Thu Aug 9 08:56:59 CEST 2012
2012/8/8 Roger Upole <rupole at hotmail.com>:
> It's not really OT here, as there is a good bit of general discussion
> regarding Python and Windows, not just Pywin32.
> There's also a ctypes mailing list:
> https://lists.sourceforge.net/lists/listinfo/ctypes-users
Thank you very much, I'll try this discussion.
However, I have discovered that the cause of the error is that I do
not pass the pointer. So the correct code is:
>>> import ctypes
>>> class GUID(ctypes.Structure):
... _fields_ = [
... ('Data1', ctypes.c_ulong),
... ('Data2', ctypes.c_ushort),
... ('Data3', ctypes.c_ushort),
... ('Data4', ctypes.c_ubyte*8),
... ]
... def __str__(self):
... return "{%08x-%04x-%04x-%s-%s}" % (
... self.Data1,
... self.Data2,
... self.Data3,
... ''.join(["%02x" % d for d in self.Data4[:2]]),
... ''.join(["%02x" % d for d in self.Data4[2:]]),
... )
...
>>> array = ctypes.c_ubyte*8
>>> guid = GUID(ctypes.c_ulong(2709787400), 13633, 20395, array(188,129,247,21,86,242,11,74))
>>> ctypes.windll.powrprof.PowerSetActiveScheme(None, ctypes.byref(guid))
But there still must be a bug in the GUID class, because calling the
function ``PowerGetActiveScheme`` I do not receive the same GUID.
--
Radek Holý
Czech republic
More information about the python-win32
mailing list