Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Maus Hook - Nichts passiert

  Alt 7. Feb 2006, 19:46
Wenn das eine DLL fuer einen globalen Mouse Hook ist, dann wird sie nicht funktionieren.
Solche DLLs lassen sich nicht so einfach in Delphi implementieren.

Der Knackpunkt ist die globale Variable HookHandle. Diese ist in einer Delphi DLL nicht global genug.
so eine Hook DLL wird in alle laufenden Prozesse geladen. Gemeinerweise aber als separate Kopie.
Also hat nur eine Kopie (naemlich die von deinem Programm) initialisierte globale Variablen.
Der HookHandle muss daher fuer alle DLL-Kopien zugaenglich sein.
Bei DLLs die mit MS Compiler erstellt wurden kann man ein shared Segment deklarieren das dann in allen DLL-Kopien vorhanden ist.
Delphi kann das nicht, daher weicht man ueblicherweise auf ein memory mapped File aus.
  Mit Zitat antworten Zitat