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/)
-   -   Delphi Mausklick Dauer herausfinden (https://www.delphipraxis.net/102025-mausklick-dauer-herausfinden.html)

der_kumpel 22. Okt 2007 13:06


Mausklick Dauer herausfinden
 
Tag zusammen.

Ich stehe gerade vor einem Problem:
Es soll die Zeit, die für einen Mausklick (also die Zeit zwischen MouseDown und MouseUp) gebraucht wird, gemessen werden.
Der Mausklick passiert irgendwo auf dem Bidlschirm, also außerhalb des Delphi Programms.

Delphi-Quellcode:
procedure TForm1.Clock;
var
  Time: Cardinal;
begin
  Time:=GetTickCount;
  // hier müssten die beiden Events abgefangen werden
  ListBox1.Items.Add(IntToStr(GetTickCount - Time));
end;
Bei dem Code bin ich mir nicht sicher, ob das so geht. So würde ja die Zeit schon laufen, auch wenn die Maus noch nicht runtergedrückt wurde. :?

Wär nett, wenn jemand helfen kann. :)

Gruß,
kumpel

sirius 22. Okt 2007 13:16

Re: Mausklick Dauer herausfinden
 
Stopp die Zeit zwischen den Events MouseDown und MouseUp (allerdings geht es Desktopweit nur, wenn du dein fentser auf den Desktop ausdehnst oder einen globalen Hook einsetzt.

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if zeit=0 then zeit:=gettickcount;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  edit1.text:=inttostr(gettickcount-zeit);
  zeit:=0;
end;

der_kumpel 22. Okt 2007 13:23

Re: Mausklick Dauer herausfinden
 
Danke für die schnelle Antwort.

Zitat:

Zitat von sirius
Stopp die Zeit zwischen den Events MouseDown und MouseUp (allerdings geht es Desktopweit nur, wenn du dein fentser auf den Desktop ausdehnst oder einen globalen Hook einsetzt.


Das geht so leider nicht, weil zum Zeitpunkt des Klicks ein anderes Fenster im Vordergrund ist, also der Klick findet außerhalt meines Delphi PRogramms statt.

Dass ich dazu Hooks einsetzen muss, hatte ich schon befürchtet. Aber hilft nichts, ich werde mich mal einlesen.
Danke trotzdem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 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