Hello,
here comes the approach I used:
include "Pilot.inc"
include "Startup.inc"
Appl "SelfDeletePRC", 'SDel'
data
code
;-------------------------------------------------------------------------------
proc PilotMain(cmd.w, cmdPBP.l, launchFlags.w)
local result.l
BEGINPROC
cmp.w #sysAppLaunchCmdNormalLaunch,cmd(a6)
bne MainExit
systrap FrmAlert(#1000.w)
bsr.s Patch
MainExit
moveq.l #0,d0
ENDPROC
;-------------------------------------------------------------------------------
Patch:
; trap #8
systrap MemPtrNew(#(Code_End-Code_Start).l)
move.l a0,-(a7) ; save it
systrap MemPtrSetOwner(a0.l,#0.w)
move.l #(Code_End-Code_Start)-1,d0
move.l (a7),a0
lea.l Code_Start(pc),a1
Copy:
move.b (a1)+,(a0)+
dbf d0,Copy
systrap SysGetTrapAddress(#sysTrapDmOpenDatabase.w)
move.l (a7)+,a4 ; a4 ->heap
move.l a0,(TrapAddress-Code_Start)(a4)
systrap SysSetTrapAddress(#sysTrapDmOpenDatabase.w,a4.l)
rts
;-------------------------------------------------------------------------------
Code_Start:
; trap #8
SkipTrap8:
bra.s Skip
dc.b $4e,$f9 ; jmp $12345678
TrapAddress dc.l $12345678
Skip:
lea.l (TrapAddress-4)(pc),a4
move.w #$4e71,(a4)
systrap DmFindDatabase(#0.w,&(DBname-SkipTrap8)(a4).l)
systrap DmDeleteDatabase(#0.w,d0.l)
bra.s Code_Start
DBname
dc.b 'SelfDeletePRC',0
Code_End:
;-------------------------------------------------------------------------------
res 'Talt', 1000, "Talt03e8.bin"
end
Best regards,
Klyatskin
http://klyatskin.da.ru
PDFL> ----------------------------------------------------------------------
PDFL> Date: 9 Jan 2000 17:14:11 -0800
PDFL> From: "Michael P. Hutchens, M.D., M.A." <[EMAIL PROTECTED]>
PDFL> Subject: Can an application delete itself?
PDFL> I have an app I'd like to run once and delete itself. Can this be done? How?
PDFL> -
PDFL> ------------------------------------------------------------------------------
PDFL> Michael Hutchens PregCalc 3.0 Professional:
PDFL> [EMAIL PROTECTED] http://www.thenar.com/pregcalc
PDFL> FloChart:
PDFL> http://www.thenar.com/chart