Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как программа может удалить сама себя


Автор: evkwarrior 21.11.2007, 07:33
Уважаемые читатели!
В общем, вопрос такой: как сделать так, чтобы сам процесс удалял свой же файл образа, с которого он был загружен?

Уточню задачу:
Запускается приложение, проверяет определённые данные (не суть), и, в случае, если они некорректны, удаляет само себя.
Детали не важны.
Т.е. не важно, сделает это сам процесс или другой процесс, завершится процесс или нет и т.д.
Но! Дополнительных файлов создаваться не должно! И не предлагать вариант, когда пишется второе приложение, которое удаляет первое.

Мне хотелось бы знать, какие вообще варианты реализации можно придумать?
И посмотреть на сами реализации, конечно;-)))

Вот.
Мне самому пришло в голову два способа:
1) Запустить дочерний процесс, который завершит родительский и удалит файл.
2) Использовать какие-нибудь системные службы (Windows Installer)
Как вы думаете, так можно?

В общем, буду очень признателен!!!

Автор: ama_kid 21.11.2007, 11:03
Цитата(evkwarrior @  21.11.2007,  07:33 Найти цитируемый пост)
Мне хотелось бы знать, какие вообще варианты реализации можно придумать?
И посмотреть на сами реализации, конечно;-)))
Статья и исходники по этому поводу http://www.catch22.net/tuts/selfdel.asp
Цитата
When Windows XP came out the "self-deleting" executable became a part of history - it is no longer possible for a Windows program (which runs on any version of Windows) to delete itself. However there are lots of techniques which can achieve the same effect 

Автор: evkwarrior 24.11.2007, 17:30
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)