Форум: "Потрепаться";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
ВнизУдаление запущеных файлов Найти похожие ветки
← →
kostik78ua (2002-10-23 19:22) [0]Программеры, я прозрел !!!
Всегда думал, что удалить запущеный exe-шник невозможно.
Сегодня я победил его. Причем программа преспокойно работает, а файла уже нет.
А делается это так:
Запускаем какой-нибудь Project2.exe
CopyFile("c:\Project1.exe", "c:\Project2.exe", false);
DeleteFile("c:\Project2.exe");
Причем Project1.exe - какой-нибудь левый файл
И все !!!!!!!
← →
LongIsland (2002-10-23 19:31) [1]И совсем все???
← →
AL2002 (2002-10-23 19:39) [2]>kostik78ua (23.10.02 19:22)
Сама себя?
← →
kostik78ua (2002-10-23 19:48) [3]Можете проверить, я сам не поверил
← →
AL2002 (2002-10-23 19:50) [4]Почему тогда не:
CopyFile("c:\Project2.exe", "c:\Project2.exe", false); ?
← →
kostik78ua (2002-10-23 19:58) [5]Не, файл должен иметь другое имя.
Кстати самого себя тоже может удалить. Только что проверил.
← →
kostik78ua (2002-10-23 20:04) [6]Еще один вариант удалить самого себя:
CopyFile("Project1.exe", "Project1_tmp.exe", false);
CopyFile("Project1_tmp.exe", "Project1.exe", false);
DeleteFile("Project1.exe");
DeleteFile("Project1_tmp.exe");
← →
Странник (2002-10-23 20:04) [7]> kostik78ua (23.10.02 19:58)
> Кстати самого себя тоже может удалить. Только что проверил.
а почему ты еще здесь? восстановился из корзины? или из кеша?
;-)
← →
Yakudza (2002-10-23 20:08) [8]Ну вы блин даете...
← →
Vaddya (2002-10-23 21:25) [9]Не знаю, у меня XP, только что попробовал - не получается. CopyFile - возвращает 1. DeleteFile свой ЕХЕ - 0, DeleteFile скопированный - 1. Чуда не произошло...
← →
Voldemar (2002-10-24 03:11) [10]Под NT любого вида это сделать ПРОСТО НЕВОЗМОЖНО. Во всяком случае, традиционными методами. Если только ткнуться на уровень файловой системы, да и то при этом придется как-то обходить ограничения ОСи, напрямую обращаться к диску.
← →
paul_shmakov (2002-10-24 12:32) [11]2 Voldemar:
"Под NT любого вида это сделать ПРОСТО НЕВОЗМОЖНО."
ну это неправда. под nt/w2k есть вполне приличный способ, который под xp уже не работает. основан способ на том, что в nt/w2k хэндл со значением 4 - это всегда дескриптор самого exe-файла, проецируемого в память. стоит этот хэндл закрыть - файл можно удалять.
под win9x/me есть аналогичный способ.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c