Re: *.exe self-delete.
От: Alex Fedotov США  
Дата: 11.02.02 01:27
Оценка: 21 (2)
Здравствуйте yaroslav_v, Вы писали:

YV>Можно ли удалить *.exe файлу самого себя?


Напрямую — нет.

YV>Нужно для uninstall'era.

YV>Сейчас я копировал им его в TEMP, и запускал с парамeтром, тот удалял первый, а себя делал “удалять на перезапускe".
YV>В PE-заголовках есть флаг, что мол мы на сменном носителе, позволяет ли он удалить исполняемому файлу самого себя?

Нет.

YV>Есть ли какие-то другие способи удалить самого себя


До сих пор самый надежный способ, работающий во всех системах, — это запуск .bat файла, удаляющего основную программу, а затем и себя. Динамически формируется и запускается .bat-файл следующего содержания, после чего программа быстренько завершается, чтобы пользователь не успел заметить 100% использование процессора:

:loop
del "full-path-to-my-program.exe"
if exist "full-path-to-my-program.exe" goto :loop
del "full-path-to-this-file.bat"


В этот же .bat-файл можно добавить удаление директорий, в которых находилась основная программа.

На NT возможны более изощренные методы:
http://groups.google.com/groups?hl=en&selm=91q3cn%24v8n%241%40novalfsmtp1.novsvcs.net
http://groups.google.com/groups?hl=en&selm=c14f01c1a0f7%24f9b3f010%249ae62ecf%40tkmsftngxa02
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.