Autor |
Beitrag |
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 14:04
Wie kann ich feststellen wie lange auf dem Bildschirm keine Aktivität stattgefunden hat. Das soll in etwa wie beim Bildschirmschoner funktionieren, nur will ich auf die Inaktivität nicht mit dem Bildschirmschoner, sondern mit meinem Programm reagieren.
Wie gesagt: es soll kein Bildschirmschoner sein. Ich will einfach die Inaktivität nutzen und Arbeiten im Hintergrund auszuführen. Die sollen aber nur dann ausgeführt werden wenn der User nicht arbeitet.
Ich schätze, daß es da einer Art Timer geben müßte der aussagt wie lange es keine Änderung am Bildschirms gegeben hat.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 15:59
Also, erst einmal: ich weiß, dass du keinen Screensaver machen willst! Das ist in deinem Text deutlich geworden. Aber warum guckst du dir nicht mal das Prinzip an? Sprich: Dokus, Aufbau, usw. Das wäre das erste, das ich machen würde, wenn ich eine screensaver-ähnliche Funktionalität (in dem Fall: die Inaktivität) nutzen will.
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 16:47
Weil ich mal vor Jahren gehört habe, daß es da eine Funktion gibt die bei jeder Aktivität wieder auf 0 gestellt wird. Sonst gibt sie eine Zahl aus wie lange schon nichts passiert ist. Im Grunde würde mir das reichen. Das ganze um den Screensaver herum brauche ich eigentlich nicht.
Natürlich hab ich mir die ScreenSaver API Funktionen angeguckt, allerdings fand ich die gesuchte Funktion nicht.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 17:20
Wie sieht es mit dem OnIdle-Event von TApplication aus?
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 20:24
Es geht hier nicht um meine Applikation, sondern um Windows.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 18.12.02 20:31
Sorry, stimmt. Unter NT basierenden System könnte man recht zuverlässig die CPU-Zeit des Idle-Prozesses ermitteln und wenn der bei 98-99% liegt dürfte so gut wie keine Aktivität stattfinden. Assarbad hat da mal was gemacht.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: So 27.04.03 22:27
Kannst du nicht irgendwie mit einem Timer überprüfen, ob die Mausposition sich ändert oder irgendeine der vielen Tasten gedrückt ist? Wenn dem nicht so ist, schaltest du einen zweiten Timer bei, der so lange läuft, bis etwas passiert. Ginge das nicht?
_________________ Hasta La Victoria Siempre
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: So 27.04.03 22:32
Terra23 hat folgendes geschrieben: | Kannst du nicht irgendwie mit einem Timer überprüfen, ob die Mausposition sich ändert oder irgendeine der vielen Tasten gedrückt ist? Wenn dem nicht so ist, schaltest du einen zweiten Timer bei, der so lange läuft, bis etwas passiert. Ginge das nicht? |
Jaja diese Timer können alles...  Aber was ist wenn NortonAntiVirus im Hintergrund auf Viren überprüft, dann bewegt sich keine Maus und der PC ist trotzdem ausgelastet!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: So 27.04.03 22:38
Ja schon, aber er wollte doch was anderes:
Zitat: |
Die sollen aber nur dann ausgeführt werden wenn der User nicht arbeitet.
|
... der User nicht arbeitet. 
_________________ Hasta La Victoria Siempre
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: Mo 28.04.03 06:52
Hi,
Hab auch mal so was gemacht.
Habe einfach in einem Timer überprüft, ob die Maus bewegt
oder eine Taste gedrückt wurde.
Wenn dies für eine angegebene Zeit nicht der Fall ist, wird
ein bestimmter Code solange ausgeführt bis
der Benutzer wieder aktiv wird.
Der Code arbeitet ohne Hooks.
Man könnte auch über einen Maus/Tastaturhook abfragen, ob sich die Maus bewegt hat, eine Taste gedrückt wurde.
Hab schnell aus dem Code ein kleines Demo gemacht.
tinyurl.com/agou
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Mo 28.04.03 11:13
Hallo,
wulfskin hat folgendes geschrieben: | Jaja diese Timer können alles... Aber was ist wenn NortonAntiVirus im Hintergrund auf Viren überprüft, dann bewegt sich keine Maus und der PC ist trotzdem ausgelastet! |
aber wenn ich mich nicht irre würde ein Screensaver dann trotzdem anspringen. Also währe in diesem Fall auch eine Screensaver Variable nicht effektiv.
Gruß
Klabautermann
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Mo 28.04.03 13:58
Eben. Das Prinzip der Screensaver ist ja, daß die anspringen, wenn der User nichts macht (Maus/Tastatur). Ob der PC was macht, ist dem doch wurst..
_________________ Hasta La Victoria Siempre
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: Di 29.04.03 08:22
Hab nun mal eine Komponente entwickelt (schon fast fertig), welche die Inaktivität des Benutzers angibt. u.v.m.
Bei Interesse hier melden.
|
|