Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wird Computer benutzt? (https://www.delphipraxis.net/117554-wird-computer-benutzt.html)

blackdrake 20. Jul 2008 23:36


Wird Computer benutzt?
 
Hallo.

Ist es möglich, mit Delphi abzufragen, ob die Maus oder Tastatur in den letzten 5 Minuten benutzt wurde?

Bei der Tastatur kenne ich das Benutzen einer Hook-DLL, die auch bei Keyloggern verwendet wird. Aber mit der Maus (die ja häufiger als die Tastatur verwendet wird) bin ich mir nicht sicher, wie es gehen soll. Die Mausaktivität kann ja bei der Forms-Unit nur geprüft werden, wenn der Cursor das Form überfährt, aber nicht Systemglobal.

Hintergrund ist, dass ein kleines Tool überprüfen soll, ob der Benutzer aktiv ist oder den PC verlassen hat. Da es ein Programm für private Zwecke ist, muss es nicht professionell entwickelt sein.

Gruß
blackdrake

Ultimator 20. Jul 2008 23:51

Re: Wird Computer benutzt?
 
Guck mal hier, das müsste was für dich sein:
http://www.delphipraxis.net/internal...t.php?t=124682

blackdrake 23. Jul 2008 00:38

Re: Wird Computer benutzt?
 
Hallo.

Vielen Dank für den Hinweis.

Diese Funktion frägt über die API die letzte Tastatureingabe ab. Doch wie sieht es mit der Maus aus? Diese ist zwar schwieriger zu loggen, aber es geht mir ja nur um die Aktivität. Ich denke, es wäre vergeudete Arbeit, mit Maus-Hooks herumzuexperimentieren, oder?

Bei mir kommt die Maus idR häufiger als die Tastatur zum Einsatz, weswegen ich denke, dass man beide Komponenten abfragen sollte, wenn man wissen will, ob der Anwender aktiv oder wahrscheinlich inaktiv ist.

Das Betriebssystem scheint ja intern einen Counter zu haben, der Inaktivität von Maus+Tastatur misst, um (sofern aktiviert) nach x Minuten den Bildschirmschoner zu starten. Wie dieser Counter heißt, weiß ich nicht. Kann man diesen nicht mit der API erreichen oder auslesen?

Gruß
blackdrake


[Add] Ich denke, je nach Lösungsansatz wäre eine Verschiebung in das WinAPI-Forum doch besser...

Mackhack 23. Jul 2008 01:50

Re: Wird Computer benutzt?
 
MSDN-Library durchsuchenGetLastInputInfo

Luckie 23. Jul 2008 08:34

Re: Wird Computer benutzt?
 
Zitat:

Zitat von blackdrake
Diese Funktion frägt über die API die letzte Tastatureingabe ab. Doch wie sieht es mit der Maus aus?

Hast du es schon ausprobiert? Meines Wissens nach werden auch Mmauseingaben berücksichtigt.

blackdrake 24. Jul 2008 14:27

Re: Wird Computer benutzt?
 
Hallo.

Vielen Dank, es funktioniert tatsächlich!

Ich habe mich total verwirren lassen, da der Titel der Code-Library "Zeit seit letzter Tastatureingabe" heißt, obwohl auch Mauseingaben den Counter zurück auf 0 setzen. (Sollte vielleicht korrigiert werden).

Auch hat es mich dazu verleitet, den Code nicht zu testen, da Microsoft in der MSDN die Funktion GetLastInputInfo() unter der Kategorie "Keyboard Input -> Keyboard Input Reference" gelistet hat und von Mauseingaben kein Wort verlor. :roteyes:

Gruß
blackdrake


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz