es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo hacer para que el ordenador duerma y se despierte usando Python?

Me gustaría escribir un pequeño script de python que haga que mi computadora se duerma/dormir/suspenda, y que sea posible despertarla después de X minutos.

¿Qué función hace eso?

Edit: Estoy usando Windows 10 Home.

Edit2: ¡OK, gracias!
Logré hacer que se durmiera.
Pero aún no entiendo cómo despertarlo después de x minutos.
Gracias de nuevo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para poner en suspensión a una computadora con Windows 10 utilizando Python, puedes utilizar los módulos win32api y ctypes para llamar al método SetSuspendState de Powrprof.dll.

    Aquí tienes un código de ejemplo que pone la computadora en suspensión:

    import win32api
    import ctypes
    
    # Definir constantes necesarias para SetSuspendState
    class POWER_STATE:
        SLEEP = 0x00020000
        HIBERNATE = 0x00010000
        FORCE = 0x00001000
        WAKE = 0x80000000
    
    def suspender_computadora():
        # Llamar a SetSuspendState con la constante SLEEP
        ctypes.windll.PowrProf.SetSuspendState(POWER_STATE.SLEEP, POWER_STATE.FORCE, POWER_STATE.WAKE)
    
    suspender_computadora()
    

    Para despertar la computadora después de cierto número de minutos, puedes utilizar la función time.sleep() para esperar la duración especificada, y luego llamar nuevamente al método SetSuspendState con la constante WAKE.

    Aquí tienes un código modificado que pone la computadora en suspensión y la despierta después de 5 minutos:

    import win32api
    import ctypes
    import time
    
    # Definir constantes necesarias para SetSuspendState
    class POWER_STATE:
        SLEEP = 0x00020000
        HIBERNATE = 0x00010000
        FORCE = 0x00001000
        WAKE = 0x80000000
    
    def suspender_computadora():
        # Llamar a SetSuspendState con la constante SLEEP
        ctypes.windll.PowrProf.SetSuspendState(POWER_STATE.SLEEP, POWER_STATE.FORCE, POWER_STATE.WAKE)
    
    def despertar_computadora():
        # Llamar a SetSuspendState con la constante WAKE
        ctypes.windll.PowrProf.SetSuspendState(0, POWER_STATE.FORCE, 0)
    
    suspender_computadora()
    time.sleep(5 * 60) # Esperar 5 minutos
    despertar_computadora()
    

    Esto debería poner en suspensión la computadora y despertarla después de 5 minutos. Ten en cuenta que la función time.sleep() toma la duración en segundos, por lo que 5 minutos se representa como 5 * 60 segundos.

Comments are closed.