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