ich suche mich zu tode. Ich find einfach nichts brauchbares.
Und zwar es geht darum:
Ich habe einen Touchscreen an einem Rechner hängen. Der Touchscreen wird als einfache HID-Maus eingebunden, läuft also ohne speziellen Treiber.
Wird nun für x-sekunden keine Eingabe mehr getätigt, soll der Bildschirm auf Screensaver schalten und nach weiteren x-sekunden das Backlight des Monitors ausgeschalten werden. (geschieht per RS232 Kommand)
Die Funktionen zum Ausschalten ist bereits fertig. Ein einfacher Zähler.
Nun muss ich irgendwie diesen Zähler zurücksetzen, wenn der Touchscreen berührt wurde...
Ich finde allerdings nur Methode mittels Tkinter, die nur in einem bestimmten Fenster funktionieren. Dies darf aber nicht present sein, da ich den PC mit dem Touchscreen ja normal benutzen möchte.
Muss also irgendwie die Koordinaten vom system holen, aber wie?
Oder gibt es irgendeine andere Möglichkeit, bei jedem links-klick der Maus die Funktion aufzurufen, die den Zähler auf den Anfangswert zurücksetzt?
Der Code sieht bisher so aus:
Code: Alles auswählen
import time
downCounter = screensaverTimeout = 20 #Countdown Variable; screensaverTimeout = Zeit[s] bis zum Aktivieren des Screensavers
backlightOffDelay = 10 #Zeit[s], bis Backlight nach dem Aufrufen des Screensaver ausgeschalten wird
backlightState = 1
screensaverState = 0
lastChange = time.time()
#Funktion zur Screensaver / Backlight Steuerung
def standbyHandler(screensaverState, backlightState):
global downCounter
print ("timeout Counter: %s" % downCounter)
if downCounter == 0 or screensaverState == 1:
screensaverState == 1
print("Screensaver ON")
# befehl Screensaver ON
if downCounter + backlightOffDelay == 0 or backlightState == 0:
backlightState == 0
print("Backlight off")
quit() #später: RS232 Befehl an Scaler schicken
#Mainloop
while True:
# When 1 sec or more has elapsed...
if time.time() - lastChange > 1:
lastChange = time.time()
downCounter -= 1
standbyHandler(screensaverState, backlightState)
# Do other stuff, it won't be blocked
time.sleep(0.1)
print("looping...")
Noch eine Frage: Wie kann man denn per Script den "Betriebssystem Internen" Screensaver aktivieren?
Nach Möglichkeit sollte dies bei Windows, Linux und Android möglich sein.
Vielen Dank!
Gruß Danie