Hanno, ich weiß nicht warum du nicht einfach mal den Wert von hMouseHook ausgibst?
Das würde wirklich ALLEN hier helfen, anstatt hier weiter Vermutungen zu äußern. Selbst wenn ich Unrecht habe (und somit was falsches in
MSDN steht) oder ob Robert falsch liegt ist doch wohl mal nicht so schlimm.
Zu Data/Code Segmente:
Es ist (so viel ich weiß) total egal was die BaseOfCode / BaseOfData ist, nur die Flags in den _Sections_ interessieren.
Da gibt es halt Readable, Executable, Shareable und Writeable, wo bei Readable/Executable kein Unterschied auf Systemen ohne NXFlag gemacht wird. Und Shareable gibt es halt unter Delphi nicht (weiß nicht
ib es reicht einfach als als Shareable zu markieren oder ob des spezielle Anforderungen braucht [eventl. gehts sogar ohne Probleme])
-> Jedenfalls kann auch die CodeSection Extra für jeden Prozess geladen werden, wenn man sie als Writeable markiert oder VirtualProtect drüberlaufen lässt.
Wie auch immer ist total egal und irrelevant für dein Problem. Da Keyhooks auch in Delphi machbar sind (und dort shareable nicht verwendet werden kann) reicht es für dich zu wissen, dass alles was du in einer
DLL mit Variablen machst eben vom Prozess aus gesehen lokal ist.
Bleibt also nur noch zu klären ob die Variable 'hMouseHook' für SetWindowsHookEx egal ist. (laut
MSDN schon) Laut der Betrachtung als Lokale Variable in einem Prozess ebenfalls. Mit 2 Minuten arbeit könntest du es ja leicht bestätigen oder eben auch nicht.
Da brauchst du die Forenuser nicht gegenseitig ausspielen, immerhin willst DU ja eine Lösung dafür haben.