Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Mausrad abfangen - drehung außerhalb der anwendung erken

  Alt 20. Dez 2006, 07:27
Mir ist nicht bekannt, das die DLL in jeden Prozess injiziert werden muss. Es ist aber so, das (nach meinem Halbwissen) Windows es nicht zulässt, das eine EXE einen globalen Hook einrichtet, denn wenn die EXE wegballert, ohne den Hook wegzunehmen, schießt sich dadurch Windows ab.

Also hat MS sich gedacht: Globale Hooks nur in DLL. Du schreibst also eine kleine Hook-DLL, lädst die permanent und initialisierst aus dem DLL-Code heraus den Hook. Nun sieht Windows, das der Hook aus eine DLL zeigt und die Welt ist in Ordnung, denn Windows kontrolliert, wann die DLL wieder aus dem Speicher verschwindet. Über ein Callback realisierst Du die Benachrichtigung, das etwas passiert ist.

Ich denke mal, das meint Luckie et al. mit 'injizieren', oder? Leider finde ich meine DLL nicht mehr, die das so gemacht hat. Ich weiss nur noch, das man den DLL-Initialisierungscode (DllMain) selbst schreiben muss, damit das klappt.

Das hier hab ich bei torry gefunden. Ich habe es nicht getestet, aber vielleicht hilft es Dir (und ist eine Alternative zu Luckies Methode).
Angehängte Dateien
Dateityp: zip gpsyshook_109.zip (33,0 KB, 40x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat