0
votes

Exécuter la fonction sur l'inactivité de l'utilisateur

Au travail, nous devons faire notre propre gestion de temps et être contrôlé de temps en temps. Parce que j'oublie toujours, quand je prends mes pauses et combien de temps, j'ai décidé d'écrire un script Python qui fonctionne au démarrage et écrit l'heure actuelle après que je n'ai pas déplacé ma souris ou tapé sur mon clavier pendant 5 minutes. Xxx

Je ne sais tout simplement pas, comment exécuter ma fonction écrite après une certaine période écoulée depuis la dernière entrée.


0 commentaires

3 Réponses :


1
votes

pynput code> semble être pour vous. Voir Docs

Ce serait quelque chose comme P>

from pynput import mouse
with mouse.Listener(on_click=reset_timer,
    on_move=reset_timer, 
    on_scroll=reset_timer) as listener:
    begin_timer()


0 commentaires

0
votes

Un autre moyen peut être de définir votre écran de moniteur (options d'économiseur d'écran) après 5 minutes, puis écrivez un script qui détecte l'état du moniteur.

Voici un exemple sur la façon de faire cela: Comment Vérifiez si l'affichage de l'appareil est activé / éteint avec Python?

codage heureux


0 commentaires

0
votes

Ce n'est peut-être pas la solution la plus propre, mais je suis un programmeur novice python, je suis assez heureux avec ça. Importer DateTime de la structure d'importation CTYPES, Windll, C_uint, Taillef, Byref Heure d'importation

class LASTINPUTINFO(Structure):
    _fields_ = [
        ('cbSize', c_uint),
        ('dwTime', c_uint),
    ]


def get_idle_duration():
    lastInputInfo = LASTINPUTINFO()
    lastInputInfo.cbSize = sizeof(lastInputInfo)
    windll.user32.GetLastInputInfo(byref(lastInputInfo))
    millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
    return millis / 1000.0


while 1:
    GetLastInputInfo = int(get_idle_duration())

    if GetLastInputInfo >= 10:
        start = time.time()
        startTime = datetime.datetime.now()

        while GetLastInputInfo >= 10:
            GetLastInputInfo = int(get_idle_duration())
            if GetLastInputInfo < 10:
                end = time.time()
                time_elapsed = end - start + 10
                if time_elapsed >= 10:
                    with open("C:\\Users\\[USER]\\Desktop\\time.txt", 'w') as f:
                        f.write('Pause from ' + str(startTime) + ' to ' + str(
                            datetime.datetime.now()) + '\nDuration: ' + str(time_elapsed))


0 commentaires