HOOKANY, h#s 11/00
16-bit-DLL zum Anzapfen aller Windows-Funktionen
Diese allgemein verwendbare DLL mit einer Schnittstellen-Unit f�r
Borland Pascal 7 und Delphi 1 ist einsetzbar, um beliebige
Windows-Funktionen global oder gezielt f�r eine bestimmte Anwendung
zu modifizieren.
Beispielsweise:
* Modifikation von GetOpenFileName zur Aufbesserung des Datei-
Auswahldialogs (z.B. Umsetzung nach Version-4-Stil, Datum/Uhrzeit-
Anzeige, Verzeichnisse anlegen, Dateien l”schen, lange Dateinamen)
* Auffangen der Zeichenbefehle einer widerspenstigen Anwendung
(ohne Druckfunktion) via Anzapfung von BeginPaint/EndPaint und
Versendung von WM_Paint zur Erhaltung einer (scharfen) Metadatei
* Loggen des Aufrufs bestimmter Windows-Funktionen, wie WriteProfileString,
_lcreate, OpenFile und RegCreateKey
Bedenke: Die Hook-Funktion wird stets im Kontext der laufenden Task
gerufen, besonders zu beachten, wenn Dialoge, Messageboxen o.„.
"langandauerndes" benutzt werden. Gegebenenfalls auf ungew�nschte Tasks
(z.B. die eigene) testen und entsprechend verzweigen. Relativ sicher
ist die Verwendung von PostMessage in der Hook-Funktion.
Nur bedingt geeignet ist HOOKANY f�r Funktionen mit C-Aufrufkonvention!
Hier ist f�r <stackframelen> Null anzugeben; der Zugriff auf die Parameter
muá in der Hook-Funktion mit Assembler-Befehlen erfolgen (Ausnahme:
direkte Anzapfung und Verwendung von <cdecl> in Delphi 1).
Wie HOOKANY, spezieller die beiden Funktionen SetHook und Unhook, verwendet
wird, steht in der Unit-Datei HOOK.PAS.
HOOKTEST.PAS ist ein kleines Beispiel, welches Piepsger„usche um die
Funktion GetOpenFileName setzt, und GetSaveFileName verhindert,
wenn die Task ein Hauptfenster namens 'KCEMU' (also der KC-Emulator) hat.
Detected encoding: ANSI (CP1252) | 4
|
|