![]() |
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. |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Was für Code wird noch ihm Timer-Ereignis ausgeführt?
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Das genau wird im Timer ausgeführt.
Ich ahne worauf du hinaus willst Luckie
Delphi-Quellcode:
procedure TKasse.pennerTimer(Sender: TObject);
var stze,suze:DWord; begin stze:=60; suze:=schoneran; if suze > stze then schoner.bildschoner.Show; end; |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Das Objekt schoner existiert?
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
ist eine Unit, ja
aber wahrscheinlich noch nicht zu dem zeitpunkt wie die main erstellt wird, richtig? |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Gut dann die Frage, existiert das Objekt bildschoner?
|
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
schoner.bildschoner ist doch ein und dieselbe unit
und schoner steht in "uses". die Unit schoner:
Delphi-Quellcode:
unit schoner;
... var bildschoner: Tbildschoner; ... |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Zitat:
Aber was ist denn TBildschoner? evtl. eine Klasse TForm? Ist bildschoner zum Zeitpunkt des Timers schon Createte? Warum startest du den pennerTimer von Beginn an und nicht erst dann, wenn du sicher bist, dass bildschoner erzeugt wurde? OT: Grüße aus Jena nach Jena :zwinker: |
Re: Wie lange keine Benutzereingaben mehr erfolgt sind(user
Ja danke, genau das hab ich jetzt gemacht.
Ich denke mal jetzt ist das Prob gelöst... Danke an alle Grüße nach aus Lobeda :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:21 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