Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программа удаляет саму себя. Реально ?


Страницы:   1 2

Malenkii Myk ©   (2005-05-28 17:08:00) 

Возможно сделать, чтобы программа смогла себя закрыть и удалить (без 2-ой программы). ?


Malenkii Myk   (2005-05-28 17:52:00) [21]

Ну через BAT файл не очень прикольно, хотелось бы чтобы всё на программном уровне работало


reneb   (2005-05-28 17:47:00) [22]

Ja eto delaju tak.
Napishu bat-file i zapuskaju ego
bat-file staraetsja steret' exe emu eto udastsja kogda zakachivaetsja exe
Posle etogo mozhes i bat-file steret';

Privet iz Budapesta

procedure TForm.Button1Click(Sender: TObject);
var
 f: TextFile;
 filename: string;
 pi: TProcessInformation;
 si: TStartupInfo;
begin
   filename:=ChangeFileExt(Application.ExeName, '.bat');
   AssignFile(f, filename);
   Rewrite(f);
   Writeln(f, ':label1');
   Writeln(f, 'del "' + Application.ExeName + '"');
   Writeln(f, 'if exist "' + Application.ExeName + '"' + ' goto label1');
   Writeln(f, 'del "' + filename + '"');
   CloseFile(f);

   FillChar(si, SizeOf(TStartupInfo), 0);
   si.dwFlags:=STARTF_USESHOWWINDOW;
   si.wShowWindow:=SW_HIDE;

   if CreateProcess(nil, PChar(filename), nil, nil, false, IDLE_PRIORITY_CLASS, nil, nil, si, pi) then begin
     CloseHandle(pi.hThread);
     CloseHandle(pi.hProcess);
   end;
   Close;
end;


Malenkii Myk   (2005-05-28 17:41:00) [23]

Если Win32 разрешает переименовывать запущенный файл, то как это осуществить? Через стандартый Rename вроде этого не сделать...


Юрий Зотов   (2005-05-28 17:36:00) [24]

> Malenkii Myk

Старая версия переименовывает свой файл (Win32 это разрешает), скачивает и запускает новую, после чего завершается - а запущенная новая версия удаляет старую. И все проблемы.


Eraser   (2005-05-28 17:34:00) [25]

Malenkii Myk   (28.05.05 17:22) [3]
Если реально, тот каким способом это осуществить...


Проще всего через bat файл.


Malenkii Myk   (2005-05-28 17:22:00) [26]

Так реально или нет ?
Если реально, тот каким способом это осуществить...

К примеру... Я пишу Updater, который скачивает с сервера обновления других файлов, но время от времени надо обновлять и сам Updater. Типа скачивается новая версия этого приложения и старая версия должна закрываться, удалять, переименовываться и запускаться Ж) Во как! Ж)


-=XP=-   (2005-05-28 17:11:00) [27]

Даже могу привести пример такой программы: format.com


KilkennyCat   (2005-05-28 17:10:00) [28]

да.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо