File: /~heha/hs/hookany.zip/HOOKANY.TXT

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
Wrong umlauts? -
Assume file is OEM (CP437) encoded