Entwickler-Ecke

Windows API - Hook-Handle gültig?


Boldar - Mo 08.09.08 17:36
Titel: Hook-Handle gültig?
Wie findet man heraus, ob hinter einem Hookhandle ein gültiger, installierter globaler hook steckt?? Also sowas wie

Delphi-Quelltext
1:
ishook (handle)                    

??


SAiBOT - Mo 08.09.08 17:48

Wie wäre es wenn du uns deine Hookprocedure zeigst?

In der Regel wohl:

Delphi-Quelltext
1:
if handle <> 0 then // Gültig!?                    


Edit: Soweit ich weiß gibt es kein "globales hookhandle" mehr seit Win XP, es sei denn es ist ein KernelHook :mrgreen:. Oder benuzt du zum Hooken die API Funktionen?


Boldar - Mo 08.09.08 19:38

Nein, ich meine ob einem beliebigem handle ein hook zugeordnet ist. siehe auch hier [http://www.delphi-library.de/topic_82009.html]
Da werden ja alle hooks geschlossen/deinstalliert. Aber ich möchte sie nun nicht schliessen, sondern lediglich feststellen, ob es zu diesem Handle einen Hook gibt.


SAiBOT - Mo 08.09.08 22:13

user profile iconBoldar hat folgendes geschrieben:
Nein, ich meine ob einem beliebigem handle ein hook zugeordnet ist. siehe auch hier [http://www.delphi-library.de/topic_82009.html]
Da werden ja alle hooks geschlossen/deinstalliert. Aber ich möchte sie nun nicht schliessen, sondern lediglich feststellen, ob es zu diesem Handle einen Hook gibt.


Dort geht es um Hooks die mit "SetWindowsHookEx" erstellt wurden...

Die Hilfe sagt:
Zitat:
Return Value

If the function succeeds, the return value is the handle to the hook procedure.

If the function fails, the return value is NULL. To get extended error information, call


Also gehts so:
user profile iconSAiBOT hat folgendes geschrieben:


Delphi-Quelltext
1:
if handle <> 0 then // Gültig!?                    


Aber ob sich dann wirklich ein HOOK hinter dem Handle verbirgt ist fraglich :nixweiss:
Ich habe keine Ahnung, in wie weit das richtig ist was user profile iconAHT gepostet hat!
MfG


Boldar - Di 09.09.08 12:35

Es geht um Hooks, die nicht vom Programm selbst instaliert wurden, sondern von anderen Programmen. In dem verlinktem Beitrag ist ja erwähnt, wie man alle hooks schliesst. Ich will sie aber nicht schliessen, sondern nur auflisten.


SAiBOT - Di 09.09.08 18:35

user profile iconBoldar hat folgendes geschrieben:
Es geht um Hooks, die nicht vom Programm selbst instaliert wurden, sondern von anderen Programmen. In dem verlinktem Beitrag ist ja erwähnt, wie man alle hooks schliesst. Ich will sie aber nicht schliessen, sondern nur auflisten.


Das habe ich auch genau so verstanden...


Boldar - Do 11.09.08 19:06

Also, nun noch eine Frage: Wie ermittelt die Funktion callnexthookex der Kernel32.dll den in der Hookchain nächsten Hook??