class WindowsInhibitor: '''Prevent OS sleep/hibernate in windows; code from: https://github.com/h3llrais3r/Deluge-PreventSuspendPlus/blob/master/preventsuspendplus/core.py API documentation: https://msdn.microsoft.com/en-us/library/windows/desktop/aa373208(v=vs.85).aspx''' ES_CONTINUOUS = 0x80000000 ES_SYSTEM_REQUIRED = 0x00000001 def __init__(self): pass def inhibit(self): import ctypes print("Preventing Windows from going to sleep") ctypes.windll.kernel32.SetThreadExecutionState( WindowsInhibitor.ES_CONTINUOUS | \ WindowsInhibitor.ES_SYSTEM_REQUIRED) def uninhibit(self): import ctypes print("Allowing Windows to go to sleep") ctypes.windll.kernel32.SetThreadExecutionState( WindowsInhibitor.ES_CONTINUOUS)
import os osSleep = None # in Windows, prevent the OS from sleeping while we run if os.name == 'nt': osSleep = WindowsInhibitor() osSleep.inhibit() # do slow stuff if osSleep: osSleep.uninhibit()
References
https://trialstravails.blogspot.com/2017/03/preventing-windows-os-from-sleeping.html