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 cerrar un programa específico debido a la inactividad en Python.

Así que tengo programas que necesitan ejecutarse continuamente en mi PC, pero a mi hijo le gusta jugar Fortnite en él y dejar el juego encendido después de terminar. Así que estoy tratando de averiguar cómo cerrar automáticamente esa tarea específica después de 30 minutos de inactividad pero dejar la PC encendida. ¿Hay una biblioteca que pueda escuchar la entrada a través de un USB? ¿O las pulsaciones de teclas? ¿O hay una forma más fácil de escanear continuamente la entrada del usuario a nivel del sistema?

Tal vez

import os

pero estoy perdido ahí.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como un experto en IT especializado en Python y sistemas operativos, una solución para cerrar automáticamente el juego Fortnite después de 30 minutos de inactividad es crear un script en Python que monitorea continuamente la actividad del usuario. Una biblioteca posible de usar es PyAutoGUI, la cual puede detectar la inactividad del usuario basándose en eventos del mouse y el teclado.

    Para usar PyAutoGUI, puedes instalarlo a través de pip (pip install pyautogui) e importarlo en tu script de Python. Aquí tienes un ejemplo de fragmento de código que espera 30 minutos de inactividad del usuario y luego finaliza el proceso de Fortnite:

    import pyautogui
    import psutil
    import time
    
    # establece el umbral de inactividad en 30 minutos (1800 segundos)
    inactivity_threshold = 1800
    
    # obtén el ID de proceso del juego Fortnite
    nombre_proceso = "FortniteClient-Win64-Shipping.exe"
    for proc in psutil.process_iter():
        if proc.name() == nombre_proceso:
            fortnite_pid = proc.pid
            break
    
    while True:
        # verifica la actividad del usuario (eventos del mouse o teclado)
        ultima_actividad = pyautogui.getLastInputTime()
        tiempo_inactivo = (time.time() * 1000 - ultima_actividad) / 1000
        if tiempo_inactivo >= inactivity_threshold:
            # finaliza el proceso de Fortnite
            psutil.Process(fortnite_pid).kill()
            break
        # espera 1 segundo y continúa en el bucle
        time.sleep(1)
    

    Este script primero obtiene el ID de proceso del juego Fortnite utilizando la biblioteca psutil. Luego verifica continuamente la actividad del usuario utilizando la función getLastInputTime() de PyAutoGUI, la cual retorna el momento de la última interacción del usuario (ya sea del mouse o teclado). Si el usuario ha estado inactivo durante 30 minutos o más, el script finaliza el proceso de Fortnite utilizando el método psutil.Process().kill().

    Nota que esta solución asume que el proceso del juego Fortnite está ejecutándose bajo la misma cuenta de usuario que el script de Python, y que el script tiene suficientes privilegios para finalizar procesos. Es posible que necesites ajustar la variable nombre_proceso para que coincida con el nombre real del ejecutable del proceso del juego Fortnite.

Comments are closed.