Entwickler-Ecke
Windows API - GetLastInputInfo
DerNetteNachbar - Mo 12.01.09 16:05
Titel: GetLastInputInfo
Hallo an alle EEler,
nun meine Frage kennt jemand eine Funktion die der obigen entspricht und in Win98 nutzbar ist bzw. eine andere Lösung?
Stehe gerade auf dem Schlauch.
MfG
Der Nette Nachbar
BenBE - Mo 12.01.09 16:47
Was willst denn machen, bzw. welche Information brauchst Du von der genannten Funktion?
jaenicke - Mo 12.01.09 16:58
Es gab bei MS eine Anleitung im MSJ (Microsoft Systems Journal) aus dem Februar 2000. Der Artikel ist leider nicht mehr verfügbar, aber der Code lässt sich noch herunterladen.
http://www.microsoft.com/msj/backissues00.aspx
Nach einem schnellen Überfliegen wurde das da mit Hooks gelöst, die einfach jede Aktivität feststellen.
Aber vielleicht gibt es ja eine sinnvollere Möglichkeit. Deshalb auch die Frage von
BenBE.
DerNetteNachbar - Mo 12.01.09 18:15
Ich zähle damit die verstrichene Zeit seit der letzten Maus bzw. Tastaturbewegung und zwar systemweit.
Boldar - Mo 12.01.09 18:52
Das geht doch mit Hooks, dafür gabs mal ein Tutorial von Assarbad glaube ich.
DerNetteNachbar - Di 13.01.09 14:30
Hooks finde ich für diese simple Sache viel zu umständlich. Alles was ich brauche ist eine Funktion die im Ansatz dasselbe beinhaltet wie die obige. Ein Workarround würde es natürlich auch tun.
jaenicke - Di 13.01.09 14:38
Das Problem ist: Windows 9x hatte eine solche Funktionalität noch nicht. Das heißt, wenn das eigene Programm nicht aktiv ist (und Maus- und Tastaturereignisse direkt erhält), dann muss man auch solche Ereignisse, die in fremden Programmen geschehen, selbst überwachen. Dann kann man diese Zeit jeweils speichern und nutzen.
Eine andere Möglichkeit wird es wohl nicht geben, denn da das im MSJ stand, gehe ich einmal davon aus, dass es wirklich keine entsprechende Funktionalität in Win 9x gab, d.h. diese Information gar nicht gespeichert wurde. (Gesehen habe ich etwas Vergleichbares dort auch nicht.)
Etwas anderes wäre es, wenn dein Programm den Eingabefokus hat, d.h. der Nutzer gerade damit arbeitet. Aber das ist ja etwas anderes.
toms - Di 13.01.09 16:13
DerNetteNachbar hat folgendes geschrieben : |
| Hooks finde ich für diese simple Sache viel zu umständlich. Alles was ich brauche ist eine Funktion die im Ansatz dasselbe beinhaltet wie die obige. Ein Workarround würde es natürlich auch tun. |
Wenn du es nicht mit Hooks machen möchtest, dann greife auf die "billigere" Variante mit TTimer + GetAsyncKeyState zurück. (Wobei Hooks zu bevorzugen sind)
matze - Di 13.01.09 16:15
Ich habe es vor Jahren mal so gelöst, dass ich nur mittels Mouse.cursorpos bestimmt habe, ob der User aktiv ist. Also den Wert in einem Timer abfragen und mit einem gespeicherten alten Wert vergleichen.
War aber nicht der Hit da, wie gesagt, nur die Maus und nicht die Tastatur abgefragt wurde. Aber vielleicht kann man das mit GetAsyncKey auch noch zusammen schustern.
//EDIT: Argh, da war ich mit meiner Maus-Idee einen Hauch zu spät dran...
DerNetteNachbar - Mi 14.01.09 10:16
Ja danke an euch, ich werde es mit der Maus versuchen umzusetzen. Allerdings möchte ich es relativ schlank halten, da weniger fehleranfällig.
DerNetteNachbar - Do 15.01.09 09:58
Komm gerade nicht weiter, könnt ihr mir die nötigen API Funktionen nennen die für die globale Eingaben zuständig sind?
jaenicke - Do 15.01.09 12:51
DerNetteNachbar hat folgendes geschrieben : |
| Komm gerade nicht weiter, könnt ihr mir die nötigen API Funktionen nennen die für die globale Eingaben zuständig sind? |
Für das direkte Abfangen der globalen Eingaben gehen wie gesagt nur Hooks.
Dir bleibt nur die beschriebene Vorgehensweise:
matze hat folgendes geschrieben : |
Ich habe es vor Jahren mal so gelöst, dass ich nur mittels Mouse.cursorpos bestimmt habe, ob der User aktiv ist. Also den Wert in einem Timer abfragen und mit einem gespeicherten alten Wert vergleichen.
War aber nicht der Hit da, wie gesagt, nur die Maus und nicht die Tastatur abgefragt wurde. Aber vielleicht kann man das mit GetAsyncKey auch noch zusammen schustern. |
Heißt: Wenn sich die Maus an einer anderen Stelle befindet, dann wurde sie wohl bewegt...
Boldar - Do 15.01.09 14:27
Naja, man könnte einen Getmessage Hook probieren, dann hätte man mit einem Hook beide Eingabegeräte...
DerNetteNachbar - Do 15.01.09 15:12
@Boldar Kannst du vielleicht einen Sample Code posten damit ich ungefähr weiss was du meinst
DerNetteNachbar - Do 15.01.09 15:17
Ohh mein Gott, sei mal ehrlich dieses Geschwaffel versteht doch kein *Schwein* :lol:
Nersgatt - Do 15.01.09 15:22
DerNetteNachbar hat folgendes geschrieben : |
| Ohh mein Gott, sei mal ehrlich dieses Geschwaffel versteht doch kein *Schwein* :lol: |
Wenn Du konkret sagt, was Du an dem "Geschwafel" nicht verstehst, dann könnte man Dir auch konkret helfen.
DerNetteNachbar - Do 15.01.09 15:46
Der allgemeine Aufbau eines Tastatur und Mouse Hooks
Boldar - Do 15.01.09 16:07
mmh ich habe aber eigentich nicht von einem Keybord- oder Maus-Hook gesprochen?? :nixweiss:
Hört mir denn niemand zu?? :gruebel: :gruebel: :nixweiss: :?!?: :gruebel:
toms - Do 15.01.09 21:06
Boldar hat folgendes geschrieben : |
mmh ich habe aber eigentich nicht von einem Keybord- oder Maus-Hook gesprochen?? :nixweiss:
Hört mir denn niemand zu?? :gruebel: :gruebel: :nixweiss: :?!?: :gruebel: |
Wir haben dir ja andere Vorschläge gemacht, welches du als "unproduktives Geschwaffel" betitelt hast..
jaenicke - Do 15.01.09 21:08
Da verwechselst du
Boldar gerade. ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!