во первых. нужно обрабатывать сообщение wm_syscommand:
Code
procedure WindowProcedure (wnd:integer;mesage:integer;wP:integer;lP:integer);stdcall;
begin
case msg of
WM_CREATE: begin
....
end;
WM_SYSCOMMAND: begin
break;
end;
......
result:=DefWindowProc (wnd, mesage, wP, lP);
end;
Тогда окно нельзя будет закрыть чепез alt+f4.
во вторых. используй драйвер для реализации нулевого кольца и перхвата функций ZwDuplicateObjectAddress,ZwReadVirtualMemory и т.д.
тогда твой процесс нельзя будет завершить. исходник с драйвером прикладываю в аттаче