![]() |
Wie lange keine Benutzereingaben mehr erfolgt sind(user afk)
Hallo,
brauche eine Funktion die ausliest wie lange keine Benutzereingaben (Tastatus, Maus) mehr erfolgt sind. Oder etwas wie, nach 5 Minuten Inaktivität führe Funktion xy aus. Habe mir überlegt, dass Windows den Wert irgendwo speichern wird. Denn Windows aktiviert doch schließlich auch den Bildschirmschoner oder irgendwelche Energiesparoptionen wie Monitor aus. Die Frage ist wie komme ich an den Wert? Es muss doch eine Lösung geben ohne den ganzen Kram selbst zu machen und Maus- und Tastaturhooks zu installieren. |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Och Mann, warum fragt ihr nach dieser Funktion alle zwei Monat. Das ist genau die Zeitspanne, die ich brauche, um sie wieder zu vergessen. :roll:
Wenn es nur ab Windows 2000 funktionieren muss: ![]()
Delphi-Quellcode:
Im Label wird angezeigt, wie viele Sekunden das System sich im Idle-Zustand befindet.
function SecondsIdle: DWord;
var liInfo: TLastInputInfo; begin liInfo.cbSize := SizeOf(TLastInputInfo) ; GetLastInputInfo(liInfo) ; Result := (GetTickCount - liInfo.dwTime) DIV 1000; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := Format('System IDLE last %d seconds', [SecondsIdle]) ; end; |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Danke dir!
Hatte die Code-Library danach durchsucht. Und irgendwelche Suchenfunktionen konnte ich nicht verwenden, da mir keine passenden Suchbegriffe eingefallen sind. |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Hallo allerseits,
wenn ich untenstehenden Tipp verwenden will startet die Anwendung mit einer Zugriffsverletzung. Delphi selber startet die Anwendung einwandfrei (F9). Nach der Zugriffsverletzung funktioniert zwar alles aber trotzdem muss sie ja eine Ursache haben. Zitat:
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Ich hab es jetzt mehrmals getestet.
Getlasinputinfo greift ja auf die user32.dll zu, diese ist auch vorhanden. Getestet unter w2k und xp. immer das gleiche Ergebnis. Sobald ich die funktion implementiere, startet die Anwendung mit einer Fehlermeldung... |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
kommt die av beim start des programmes oder erst bei aufruf des Timer-Events?
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
da der timer (int. 1000) von anfang an läuft
nehm ich es mal an. |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
was ist das für eine Fehlermeldung?
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Liste der Anhänge anzeigen (Anzahl: 1)
das lustige an der Sache ist,
wenn die Anwendung geschlossen wurde und wieder gestartet wird kommt keine Fehlermeldung. Quasi nur nach Systemstart und anschliessend Anwendungsstart. |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Also als erstes würde ich es mal mit try..except versuchen.
Dann im except den Text der Exception ausgeben. Weiterhin einige Debugwerte einbauen. Evtl auch nach jeder Codezeile eine Messagebox ausgeben. So kannst Du nachverfolgen, wo genau es knallt. Und dann hst Du einen Startpunkt für die Fehlersuche. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz