Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как программе удалить саму себя

Если вы решили удалить Windows, сделайте это медленно с удовольствием, побайтно...


 uses
   Windows, SysUtils;
 
 procedure DeleteMe;
 var
   BatchFile: TextFile;
   BatchFileName: string;
   ProcessInfo: TProcessInformation;
   StartUpInfo: TStartupInfo;
 begin
   { создаём бат-файл в директории приложения }
   BatchFileName := ExtractFilePath(ParamStr(0)) + '$$336699.bat';
 
   { открываем и записываем в файл }
   AssignFile(BatchFile, BatchFileName);
   Rewrite(BatchFile);
 
   Writeln(BatchFile, ':try');
   Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
   Writeln(BatchFile,
   'if exist "' + ParamStr(0) + '"' + ' goto try');
   Writeln(BatchFile, 'del "' + BatchFileName + '"');
   CloseFile(BatchFile);
 
   FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
   StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
   StartUpInfo.wShowWindow := SW_HIDE;
 
   if CreateProcess(nil, PChar(BatchFileName), nil, nil,
   False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
   ProcessInfo) then
   begin
     CloseHandle(ProcessInfo.hThread);
     CloseHandle(ProcessInfo.hProcess);
   end;
 end;
 

А вот тот же способ, но немного модифицированный:


 program delete2;
 
 uses
   SysUtils, windows;
 
 var
   BatchFile: TextFile;
   BatchFileName: string;
   TM: Cardinal;
   TempMem: PChar;
 
 begin
   BatchFileName:=ExtractFilePath(ParamStr(0))+ '$$336699.bat';
 
 
   AssignFile(BatchFile, BatchFileName);
   Rewrite(BatchFile);
 
   Writeln(BatchFile,':try');
   Writeln(BatchFile,'del "' + ParamStr(0) + '"');
   Writeln(BatchFile,'if exist "' + ParamStr(0) + '" goto try');
   Writeln(BatchFile,'del "' + BatchFileName + '"');
   CloseFile(BatchFile);
 
   TM:=70;
   GetMem (TempMem,TM);
   GetShortPathName (pchar(BatchFileName), TempMem, TM);
   BatchFileName:=TempMem;
   FreeMem(TempMem);
 
   winexec(Pchar(BatchFileName),sw_hide);
 
   halt;
 end.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS