Вниз
Скачать: CL | DM;

Удаление запущеных файлов   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-34084
liho26
2002-10-31 10:48
2002.11.11
Каретка возвращается!


1-34047
Telic
2002-10-30 12:03
2002.11.11
Значение посередине графика


6-34153
Oleg_Gashev
2002-09-11 23:56
2002.11.11
beginthread & socket


1-34016
Дмитрий К.К.
2002-11-02 05:34
2002.11.11
Мастерам деревьев, часть 1: GetLastNode


14-34191
pomka
2002-10-21 17:33
2002.11.11
Помогите кто может, плиз!!!!!!!!!!!!!!!!!!!!!!




   Наверх