![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
---|Ветка была без названия|---
Krok © (2002-05-16 12:29:00)Может, кто-нибудь сталкивался...
Порядок действий такой:
1. Запускаю некий EXE-файл
2. Запускаю программу, которая в цикле пытается его удалить. Естественно из цикла она не выходит, поскольку файл блокирован запуском.
3. Выхожу из того EXE-файла
4. Функция удаления возвращает true и цикл завершается.
Дальше начинается самое интересное:В FAR`е(и проводнике) файл по-прежнему виден. Уничтожить его не дают. Команды типа copy и rename и аналогичные функции Delphi не срабатывают(равно как и DeleteFile()). FileExists() возвращает true. Запустить его на выполнение не удается. Но после перезапуска(!) системы файла уже нет.
Похоже надо, как-то освежить систему, а то она не в курсе. Кто-нибудь знает как? (Win2000)
Deader (2002-05-22 01:18:00) [1]Повесь резидент в оперативку на пример на Int 13h или на таймер
и делай че хош
erik (2002-05-17 19:58:00) [2]1) Rename myFile.exe myFile.bak(обязательно из DOS сесии!)
2) Далее копируеш свой фаил
3) Перезапускаешся и удаляеш myFile.bak
Krok (2002-05-16 16:50:00) [3]Основная задача подменить работающий файл и перезапустить его.
Как я понял, программно это не осуществить? Только формировать BAT-файл?
Proton (2002-05-16 16:42:00) [4]Основная задача то у тебя в EXEшнике удалить самого себя что ли?
Если так то мож вот это поможет.
<>DelItSelf.bat
:begin
del prga.exe
if EXIST proga.exe goto begin
del DelItSelf.bat
<>DelItSelf.bat
А батник запускай с параметром SW_HIDE.
После удаление программы ни чего не остается даже другой программы кот удаляла первую (как в твоем случае).
Батник удалит сам себя понимаеш ли :)