2016-07-12 14 views
1

Ich mache einen Alarm mit Python, und ich verwende time.sleep(), um auf Alarmzeit zu warten. Aber wenn ich meinen Computer aussetze, wird auch der Ruhezustand unterbrochen, was dazu führt, dass der Alarm ertönt, nachdem ich den Computer wieder eingeschaltet habe.Wie erkenne ich Computer-Suspendierung mit Python?

Ich brauche einen Weg für das Programm zu erkennen, wenn der Computer ausgesetzt wird, und wenn nicht möglich, zu erkennen, dass es ausgesetzt wurde, so kann ich den Timer korrekt implementieren.

Wie kann das mit Python gemacht werden?

+0

Ich denke, dass das vom Betriebssystem abhängen kann, das Sie verwenden. Was benutzt du? – Ohumeronen

+0

Anstatt lange zu schlafen, kann man kurz schlafen und die Zeit überprüfen. – syntonym

+0

Ich benutze Linux. Kurzes Schlafen und Kontrollieren erhöht die Prozesskosten sehr stark. Gibt es eine andere Möglichkeit dies zu tun? Auch nicht mit time.sleep() ... – lapisdecor

Antwort

2

Es ist sehr leicht, wenn es wurde zu erkennen, wahrscheinlich ausgesetzt:

before = datetime.now() 
sleep(1) 
after = datetime.now() 

if (after - before).total_seconds() > X: 
    # suspended 

after - before wird nie genau 1 Sekunde sein, aber sie sollten als 1 Sekunde nicht wesentlich größer sein. Sie können herumspielen, um das beste X zu finden.

+0

Ist diese Antwort in Ordnung, Lapisdecor? Ich denke, der Rechenaufwand dieser Lösung ist nicht zu hoch, oder? – Ohumeronen

+0

dies würde erfordern, dass ich im Voraus wusste, dass es eine Computer-Suspendierung gab – lapisdecor

+0

@lapisdecor nein tut es nicht. Sie können es post factum überprüfen. Wenn der Computer angehalten wurde, wird X sehr groß sein, möglicherweise Minuten. – Andrey

Verwandte Themen