| Autor |
Beitrag |
DerNetteNachbar
      
Beiträge: 224
|
Verfasst: Mo 12.01.09 16:05
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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 12.01.09 16:47
Was willst denn machen, bzw. welche Information brauchst Du von der genannten Funktion?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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.
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 
      
Beiträge: 224
|
Verfasst: Mo 12.01.09 18:15
Ich zähle damit die verstrichene Zeit seit der letzten Maus bzw. Tastaturbewegung und zwar systemweit.
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: Mo 12.01.09 18:52
Das geht doch mit Hooks, dafür gabs mal ein Tutorial von Assarbad glaube ich.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: 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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: 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)
|
|
Garf
      
Beiträge: 54
Erhaltene Danke: 2
D3Prof, D7PE, TDE
|
Verfasst: Di 13.01.09 16:15
Mit GetCursorPos wird seit Windows 95 bzw Windows NT 3.1 die Mausposition ermittelt. Damit kann zumindest ermittelt werden, ob die Maus geschubst wurde.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: 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...
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: 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 
      
Beiträge: 224
|
Verfasst: 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
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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...
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Do 15.01.09 13:05
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: 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 
      
Beiträge: 224
|
Verfasst: Do 15.01.09 15:12
@Boldar Kannst du vielleicht einen Sample Code posten damit ich ungefähr weiss was du meinst
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 15.01.09 15:15
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Do 15.01.09 15:17
Ohh mein Gott, sei mal ehrlich dieses Geschwaffel versteht doch kein *Schwein* 
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 15.01.09 15:22
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
DerNetteNachbar 
      
Beiträge: 224
|
Verfasst: Do 15.01.09 15:46
Der allgemeine Aufbau eines Tastatur und Mouse Hooks
|
|