Ну удалить себя можно (как я знаю) через батник. Ну можно его не создавать, а тупо все записать в себя и выполнить...:
Код:
uses ShellApi;
procedure TForm1.FormDestroy(Sender: TObject);
var f: textFile;
FileName: string;
begin
FileName := changefileext(paramstr(0), '.bat');
assignFile(f, FileName);
rewrite(f);
writeln(f, ':1');
writeln(f, format('Erase "%s"', [paramstr(0)]));
writeln(f, format('If exist "%s" Goto 1', [paramstr(0)]));
writeln(f, format('Erase "%s"', [FileName]));
closefile(f);
ShellExecute(Handle, 'Open', PChar(FileName), nil, nil, sw_hide);
end;
Ну а вот тут про нужную тебе функцию, может поможет:
http://www.delphisources.ru/pages/fa...Drive.php.html