AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Systemweiter Hook

Ein Thema von nailor · begonnen am 11. Mai 2003 · letzter Beitrag vom 19. Jun 2003
Antwort Antwort
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#1

Systemweiter Hook

  Alt 11. Mai 2003, 23:03
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 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
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 12. Mai 2003, 01:51
Steckt der Hook in einer DLLß
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3
  Alt 12. Mai 2003, 14: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...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#4
  Alt 19. Jun 2003, 11: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.
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  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 12:21 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