AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit globalem Keyboard/Mouse-Hook
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit globalem Keyboard/Mouse-Hook

Ein Thema von 1ceman · begonnen am 31. Okt 2007 · letzter Beitrag vom 31. Okt 2007
Antwort Antwort
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit globalem Keyboard/Mouse-Hook

  Alt 31. Okt 2007, 07:40
Ich hab mir nen Keyboard und Mouse-Hook zusammengebastelt, was auch funktioniert.
Jedoch funktioniert es nur solange meine Form den Fokus hat.
Jetzt wollte ich das ganze somachen, dass es aber immer funktioniert.
Dazu habe ich in der function installhook WH_KEYBOARD durch WH_KEYBOARD_LL ersetzt.
Delphi-Quellcode:
const
WH_KEYBOARD_LL = 13;
WH_MOUSE_LL = 14;
//...\\
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
  var mouseh, keybh: boolean;
begin
  keybh := false;
  mouseh := false;

  case Mouse_HookHandle of
    0: begin
        Mouse_HookHandle := SetWindowsHookEx(WH_Mouse_LL, @MouseHookProc, HInstance, 0);
        mouseh := true;
      end;
  end;

  case Keyboard_HookHandle of
    0: begin
        Keyboard_HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, @KeyboardHookProc, HInstance, 0);
        keybh := true;
      end;
  end;

  WindowHandle := Hwnd;
  Result := keybh and mouseh;
end;
Es kommt zwar jetzt immer bei meiner Form was an, auch wenn sie minimiert ist z.B.
Jedoch kommt immer das selbe an, egal welche taste ich drücke.
lParam: 1244868
wParam(keydown):256
wParam(keyup):257

Habe ich irgendwas vergessen, was man noch ändern muss um nen hook global hinzubekommen???

mfg
1ceman
Roman
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Problem mit globalem Keyboard/Mouse-Hook

  Alt 31. Okt 2007, 14:55
hast du dir das Tutorial schonmal durchgelesen?
http://www.dsdt.info/tutorials/hooks/

Ich nicht, kann dir folglich auch nicht sagen, ob dein Problem dort geklärt wird, aber ich nehme es an
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 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