Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: 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 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
14-34260
kostik78ua
2002-10-23 19:22
2002.11.11
Удаление запущеных файлов


1-34044
X-shadow
2002-10-30 17:51
2002.11.11
ПИСЬМО!!!


1-34042
From_X
2002-10-30 17:42
2002.11.11
И снова CGI


1-34006
GOD
2002-11-02 02:21
2002.11.11
Ну КАк ВАМ СКАЗАТЬ!!!


4-34312
bublik
2002-10-01 00:38
2002.11.11
Как послать сообщение Desktоp у о нажатии левой клавиши мышки?