(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Решение задач: как программе удалить саму себя или как изменить название исполняемого файла

Источник: pblog
Crivel

Введение

В интернете просматривая форумы по программированию я наталкивался на вопросы связанные c вопросом "Как программу заставить удалить или переименовать себя во время исполнения". В этой статье описывается самый элементарный способ.

Что нужно?

Borland Delphi желательно 7 - требует установки
Блокнот (notepad.exe) - стоит на всех компьютерах с Windows
cmd.exe - стоит на всех компьютерах с Windows

Начинаем

Зачем нам нужен блокнот и cmd.exe спросите вы?
Мы для решения этой задачи будем использовать Пакетный файл, подробнее: В Википедии
Функция для удаления:

function RemoveApp : boolean;

var

batfile : TextFile; // переменная файла

begin

try // блок try..except для обработки исключений (ошибок)

RemoveApp := true; // в результат возвращаемой функции ставим значение: истина

AssignFile(batfile,'Del.bat'); // присваиваем файл переменной

ReWrite(batfile); // Открываем для перезаписи (если существует файл перезапишится, иначе создастся)

ChDir(ExtractFilePath(ParamStr(0))); // меняем текущую директорию (с которой работает программа) на директорию в которой находится исполняемый файл

WriteLn(batfile,'del '+ExtractFileName(ParamStr(0))); // записываем в файл команду удаления del

WriteLn(batfile,'del Del.bat'); // пишем это для самоуничтожения пакетного файла

CloseFile(batfile); // закрываем файл

WinExec('Del.bat',SW_SHOW); // запускаем пакетный файл который был создан программой

ExitProcess(0); // завершаем программу

except

RemoveApp := false; // если происходит ошибка возвращаем ложь

end;

end;

Функция для переименования:

function RenameApp(newname : string) : boolean;

var

batfile : TextFile; // переменная файла

begin

try // блок try..except для обработки исключений (ошибок)

RenameApp := true; // в результат возвращаемой функции ставим значение: истина

AssignFile(batfile,'Rem.bat'); // присваиваем файл переменной

ReWrite(batfile); // Открываем для перезаписи (если существует файл перезапишется, иначе создастся)

ChDir(ExtractFilePath(ParamStr(0))); // меняем текущую директорию (с которой работает программа) на директорию в которой находится исполняемый файл

WriteLn(batfile,'ren '+ExtractFileName(ParamStr(0))+' '+newname); // записываем в файл команду переименовывание ren

WriteLn(batfile,'del Rem.bat'); // пишем это для самоуничтожения пакетного файла

CloseFile(batfile); // закрываем файл

WinExec('Rem.bat',SW_SHOW); // запускаем пакетный файл который был создан программой

ExitProcess(0); // завершаем программу

except

RenameApp := false; // если происходит ошибка возвращаем ложь

end;

end;

Заключение

Как видите ничего сложного тут нет. Эти функции не требуют ни каких дополнительных модулей.

Конец

Если будут какие то проблемы, непонятки то пишите в комментарии. С удовольствием отвечу. Желаю вам успеха в программировании!

 

Ссылки по теме

Файлы для загрузки


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 06.08.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
Nero 2018 Platinum ESD
Bamboo
Symantec Endpoint Protection Small Business Edition, Initial Hybrid Subscription License with Support, 1-24 Devices 1 YR
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Мир OLAP и Business Intelligence: новости, статьи, обзоры
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100