home *** CD-ROM | disk | FTP | other *** search
- ____ _____
- o______ / _ /__ ____________\ _|______ ________ ____________ o
- :\___ \ //___)\ __/ _ \ _ \_ __// __/___)\ __/_ _ \:
- ::/ \ \ / _\ \ _)_ \ \ \ | _)_\____ \ \/ \ _\ \ \
- :/ _\ \ // \\ / \/ / \ | / \ _/ // \\ _\ // / /
- /_________\ /____\_____\ //:\____|_______\____/____\____/_/ //:
- o--/_______/---- - --/___/--- ----- -- - --- ---- -- ----/___/-o
-
- PRÄSENTIERT
-
- PatchControl V1.2
-
- (C) Copyright 1994-1995 by ALiENDESiGN
-
- Einleitung:
- ----------
- Kennst Du das Problem: Ein Programm kann nicht entfernt werden, weil es seine
- Patches nicht entfernen kann ( z.b. wenn man mit MCP-Preferences die Konfig
- speichert). Dieses Programm behebt dieses Problem mit den SystemPatches. Alle
- Programme können nun ihre Patches entfernen. PatchControl ist kompatibel zu
- SetMan.
-
-
- Unterschiede zwischen Setman und PatchControl:
- ---------------------------------------------
- Ohne Setman oder PatchControl kann nur das letzte Programm entfernt werden,
- daß einen Vector gepatcht hat. Alle Programme die Setman ( wie MCP ) unter-
- stützen können immer entfernt werden. Aber andere Programme ( wie Snoopy oder
- Enforcer), die nicht Setman unterstützen, können niemals entfernt werden.
- PatchControl behebt dieses Problem.
-
-
- Installation:
- ------------
- Starte PatchControl gleich nach dem SetPatch in der Startup-Sequence.
- z.b.:
- C:SetPatch QUIET
- C:PatchControl
- .... alle anderen Aufrufe folgen hier
-
-
- Benutzung:
- ----------
- Nach PatchContol kann man Task-namen angeben, die ihre Patches vor allen
- anderen einfügen sollen. Diese Option ist sehr wichtig für ARQ oder ähnliche
- Programme. Man kann dann ARQ irrgentwann starten und nicht unbedingt vor
- dem MCP. Hier ein Beispiel für ARQ:
- C:PatchControl ARQ
- Groß-klein-Schreibung wird nicht unterschieden und Wildcards werden
- unterstützt.
-
-
- für Programmierer:
- -----------------
- Es ist sehr einfach zu benutzen. Rufe die Funktion FindPort("SetMan") auf.
- Wenn der "SetMan"-Port existiert, entferne die Patches ( mit SetFunktion() )
- ohne sie zuvor zu kontrollieren. PatchControl macht den Rest.
-
-
- Developers: (Viruskiller-Programmierer)
- ----------
- Du kannst eine Liste aller Patches wie folgt bekommen:
- Rufe FindPort() "Setman" auf und lies folgendes aus:
- MP_SIGTASK APTR ( im alten Setman = 0 )
- Im SIGTASK ( genannt PatchControl ) lies TC_USERDATA aus. Dies ist ein Zei-
- ger auf die PatchList.
-
- Patchlist:
- APTR LibraryBase
- ULONG Offset
- APTR PatchNode ;First Node
-
- APTR LibraryBase
- ULONG Offset
- APTR PatchNode
- . ;Hier folgen weitere Strukturen
- . ;Mit einer Null in APTR Library endet die Liste.
- .
-
- PatchNode:
- APTR Next_Node ;Offset 00
- APTR Previous_Node ;Offset 04
- JMP Next_Program ;Offset 08 Addresse des nächsten Programms
- APTR Program ;Offset 14 Programm für diese Node
- APTR TaskName ;Offset 18 der Task-Name von diesem Programm
- LABEL PatchNode_SizeOf
-
-
- Autor:
- -----
- Stefan "zerocom" Sommerfeld
- Kaulbachstr. 3
- 14612 Falkensee
- Deutschland
-
- Telefon: +49-[0]3322-202452
- EMail: zerocom@cs.tu-berlin.de
-
- oder rufe folgende Support-BBS an: eViL moOn! +49-[0]3322-208768 (2400-28800)
-