Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Mausklick und Mausstrecke

  Alt 29. Jan 2006, 16:30
Das was du da ausgegraben hast ist übrigens kein Mousehook, sondern so wie es auch drübersteht ein Journal-Hook (WH_JOURNALRECORD).

Also, so etwas kann auch viel einfacher aussehen:

Delphi-Quellcode:
var
  Form1: TForm1;
  LButtonDownCounter,
  LButtonUpCounter : integer;

implementation

{$R *.dfm}

function MouseProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
begin
  case nCode < 0 of
  True:
    Result := CallNextHookEx(Form1.HookID, nCode, wParam, lParam)
  else begin

    case wParam of
      WM_LBUTTONDOWN : begin
                         inc(LButtonDownCounter);
                         form1.label1.caption := IntToStr(LButtonDownCounter)
                       end;
      WM_LBUTTONUP : begin
                         inc(LButtonUpCounter);
                         form1.label2.caption := IntToStr(LButtonUpCounter)
                       end;
    end; { of case }
    Result := CallNextHookEx(Form1.HookID, nCode, wParam, lParam); end

  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
  LButtonDownCounter := 0;
  LButtonUpCounter := 0;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if HookID <> 0 then
     UnHookWindowsHookEx(HookID);
end;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat