Hallo!
Ich möchte informiert werden, wenn systemweit irgend eine App ein Top-Level-Fenster erzeugt. Zu diesem Zweck habe ich eine
DLL geschrieben, in der dieser Code ausgeführt wird:
hHook := SetWindowsHookEx(WH_SHELL, @ShellProc, HInstance, 0);
In der Host-App wird in FormCreate die
DLL aufgerufen (sowohl Host-App als auch
DLL sind 32-Bit). Die Host-App wird natürlich im Windows 10 File-Explorer gestartet (nicht von der
IDE).
Die Benachrichtigung funktioniert auch sehr gut - nur: Kurze Zeit nach dem Klick auf den UNHOOK-Button verabschiedet sich die Delphi
IDE aus dem Speicher!
Irgend etwas scheint mit dem Ent-Hooken nicht zu funktionieren?
Vielleicht gibt es hier jemanden, der mehr Erfahrung mit Hooks hat als ich? Wäre toll, wenn wir das gelöst kriegten!
Hier sind die Quell-Dateien:
TopLevelWindowCreationNotification.zip
Mein System: Delphi 11 in Windows 10
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.