Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Вниз

Стереть саму себя   Найти похожие ветки 

 
Негодяй ©   (2006-04-28 09:45) [0]

Такой вопрос: как можно стереть саму исполняемую прогу?


 
Чапаев ©   (2006-04-28 10:10) [1]

Проще всего: создать из программы bat-файл, который после завершения программы сотрёт программу и себя самого.

А вообще поищи в FAQ"ах, тема весьма заезженная...


 
Негодяй ©   (2006-04-28 10:12) [2]

Чапаев,
Thanx. Чё-то не нашел ниче по теме%)
Поищу ещё.


 
ЮЮ ©   (2006-04-28 10:18) [3]

Не писать таких программ, которые самому же после после первого запуска стереть хочется :)


 
TUser ©   (2006-04-28 10:54) [4]

На delphikingdom есть статья по этому поводу. Из способов

- запустить батник
 a:
 del myprog.exe
 if exists myprog.exe goto a
 del mybat.bat

- at

- еще много.


 
mfender ©   (2006-04-28 16:47) [5]

Вариант Х: программа при запуске создаёт вышеуказанный .BAT, в котором написанно её удаление, а при закрытии запускать его.


 
Сергей М. ©   (2006-04-28 16:50) [6]


> mfender ©   (28.04.06 16:47) [5]


Это далеко не "сама себя".


 
Gydvin ©   (2006-04-28 17:00) [7]

procedure TForm1.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;


 
TStas ©   (2006-04-28 19:37) [8]

program AHarakiri;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 Classes, Windows,ShellAPI;

procedure Harakiri(Delay: Integer);
var
 list: TStringList;
 str: String;
 ScriptPath: String;
begin
list:=TStringList.Create;
str:=ParamStr(0);
str:=StringReplace(str, "\", "\\", [rfReplaceAll]);
list.Add("var exeFile = ""+str+""");
list.Add("var fso=WScript.CreateObject("Scripting.FileSystemObject")");
list.Add("WScript.Sleep("+IntToStr(Delay)+")");
list.Add("fso.DeleteFile(exeFile)");
list.Add("fso.DeleteFile(WScript.ScriptFullName)");
ScriptPath:=ExtractFilePath(ParamStr(0))+"killer.js";
List.SaveToFile(ScriptPath);
ShellExecute(0, nil, PChar(ScriptPath), "", "", SW_SHOW);
list.Free;
end;

begin
 { TODO -oUser -cConsole Main : Insert code here }
 ReadLn;
 Harakiri(100);
 
end.


 
TStas ©   (2006-04-28 19:43) [9]

Вдогонку: может способ чуть кривой, но 100% рабочий. Процедура харакири пишет скрипт, который убъет сначала екзешник, потом и себя самого (скриптам так можно). Задержка нужна, чтобы прогамма успела закрыться, ей при необходимости можно играться.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.013 c
2-1145970590
nyron
2006-04-25 17:09
2006.05.21
сумма прописью


2-1146545462
Близнец
2006-05-02 08:51
2006.05.21
Объединение таблиц из разных БД


2-1146371914
Muha89
2006-04-30 08:38
2006.05.21
Выделение мышью


2-1146478023
Cat4er
2006-05-01 14:07
2006.05.21
Указатель ввода


15-1146008584
Серджинйо
2006-04-26 03:43
2006.05.21
JEDI Не устанавливается...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский