Вверх ↑
Ответов: 4641
Рейтинг: 334
#1: 2010-06-20 19:47:52 ЛС | профиль | цитата
Как удалить файл из самого себя
Как удалить самого себя ??

Широко известна проблема, связанная с тем, что невозможно удалить запущенный EXE файл. Следовательно, возникает проблема при написании деинсталлятора - он удалит файлы программы, но кто удалит его (сам себя он удалить не может). На самом деле у данной проблемы есть два решения:

Решение при помощи BAT файла
1. Создаем в любой папке BAT файл del_prg.bat следующего содержания
@echo off
:del_loop
del [полное имя и путь к EXE файлу]
if exist [полное имя и путь к EXE файлу] goto del_loop
del [полное имя bat файла]
2. Запускаем его
3. Завершаем работу EXE файла. BAT файл будет крутится по циклу до тех пор, пока ему не удатся удалить EXE файл. Затем он самоуничтожится - этому ничто не препятствует, т.к. bat файлыв могут стирать сами себя без проблем

Решение при помощи реестра
1. Создаем ключ в ветви реестра HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce с любым именем, например del_self и значением del [полное имя и путь к EXE файлу]
2. Просим пользователя перезагрузить компьютер (или делаем это принудительно). Команда из ключа сработает при следующей загрузке и будет автоматически удалена из реестра

------------ Дoбавленo в 19.49:
осталось дописать например батник на переименование скаченного апдейта и удаление основной программы.

Для изучения BAT файлов ищи в гугле по соответствующему запросу.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0