Autor Beitrag
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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



BeitragVerfasst: 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



BeitragVerfasst: 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



BeitragVerfasst: Mi 18.12.02 17:20 
Wie sieht es mit dem OnIdle-Event von TApplication aus?
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.12.02 20:24 
Es geht hier nicht um meine Applikation, sondern um Windows.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: 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... :roll: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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. :wink:

_________________
Hasta La Victoria Siempre
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 28.04.03 11:13 
Hallo,
wulfskin hat folgendes geschrieben:
Jaja diese Timer können alles... :roll: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: 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.
Ist die Frage beantwortet? Das Problem gelöst?

Dann klicke hier, um das Thema entsprechend zu markieren!