@ASTAT
Danke für den Hinweis - Vorlagen, wie es gehen sollte, gibt es im Internet einige. Deinen Code habe ich jetzt auch ausprobiert, in fast unveränderter Form (ich habe am Anfang der Hookroutine ein beep eingebaut) hat er auch als globaler Hook funktioniert. Ein paar kleine Änderungen, jetzt geht wieder nichts, dabei habe ich bis jetzt eigentlich nur "toten Code", also Deklarationen von variablen und Unterprogrammen, die noch gar nicht aufgerufen werden, eingebaut - wenn ich jetzt eine einzige Taste drücke, fängt die Hookroutine zu beepen an und hört nicht mehr auf.
Naja, zumindest habe ich einen Ansatz, mit dem ich weitersuchen kann. Das frustrierende ist, dass mein Hookprogramm eigentlich schon fertig war, als lokaler Hook hat es einwandfrei funktioniert, aber nach der Übersiedlung in die
DLL funktioniert es eben immer noch nur lokal.
@SirThornberry
Über die Frage, wie Code formatiert gehört, lassen sich Religionskriege führen. Ich halte mich seit 30 Jahren strikt an meine Styleguides und stufe meinen Code als sicher nicht weniger übersichtlich ein als die meisten Quellcodes, die z.B. hier in der Delphi Praxis oder sonstwo zu finden sind. Delphi ist für mich ziemlich neu, Pascal nicht.