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 Systemweiter Hook (https://www.delphipraxis.net/4785-systemweiter-hook.html)

nailor 11. Mai 2003 22:03


Systemweiter Hook
 
Mein Keyboardhook klappt soweit schon ganz gut. Aber irgendwie will er nur auf Ereignisse im eigenen Programm reagieren.

Ich erzeuge ihn in einer dll mit
Delphi-Quellcode:
HookHandle   := SetWindowsHookEx(WH_KEYBOARD, @HookingCallback, HInstance, 0);
Wie gesagt, wenn der Knopf im eigenen Programm gedrückt wird, ruft Windows artig die HookingCallback Funktion auf, sobald ich allerdings auf den Desktop oder sonstwohin wechsel geht nichts mehr. So wie ich die Microsofties verstanden habe, soll es aber reichen, den Hook / die Procedure in eine dll auszulagern und den letzten Parameter auf NULL zu setzen. Hab ich jetzt was ganz grundlegendes falsch verstanden, oder wo liegt der Fehler?

Michael

Luckie 12. Mai 2003 00:51

Steckt der Hook in einer DLLß

nailor 12. Mai 2003 13:18

Was wo wie? Ja, der steckt in einer dll, in der mein Programm eine function aufruft, die den Hook erzeugt, mit Verweis auf eine andere Funktion in der dll, die wenn sie aufgerufen wird eine WinMessage an mein Programm schickt. Und im eigenen Programm klappt es auch. Nur im fremden nicht.

Wenn diese Info nicht reicht, kann ich den Code mal posten...

OrallY 19. Jun 2003 10:11

Genau das gleiche verquere Problem habe ich auch.
Wenn du einen MessageBox aufruf in die DLL über dein PostMessage pflanzt (oder unter), wird dieses dann angezeigt?
So ist es jedenfalls bei mir. Die Messagebox wird angezeigt, auch wenn ich das ganze außerhalb meines Programms mache, aber eine Nachricht bekommt mein Programm nur, wenn es auch in bzw. über meinem Programm passert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz