Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Удаление неудаляемых файлов


Автор: COOLHack 19.2.2008, 05:32
Как на делфи Удалять неудоляемые файлы? Например системные, или используемые, ну вообщем те, которые по каким-то причинам удалить нельзя.

Знаю есть проги, которые это делают, но мне хочется чтоб это моя прога умела

Автор: Rennigth 19.2.2008, 10:54
Цитата(COOLHack @  19.2.2008,  05:32 Найти цитируемый пост)
Как на делфи Удалять неудоляемые файлы? Например системные, или используемые, ну вообщем те, которые по каким-то причинам удалить нельзя.

Знаю есть проги, которые это делают, но мне хочется чтоб это моя прога умела


http://wasm.ru/ ты сможешь найти немного инфы по данной теме.

Автор: COOLHack 19.2.2008, 11:08
Хым, просмотрел сайт, стать, исходники, поиск, не нашол нужной инфы...   

Автор: Qu1nt 19.2.2008, 11:13
Задай вопрос на ихнем форуме.

Автор: Snowy 19.2.2008, 12:08
Код
  MoveFile(PChar(FileName), '\RECYCLED');

Автор: Riply 20.2.2008, 19:25
Snowy, 
Цитата(Snowy @  19.2.2008,  12:08 Найти цитируемый пост)
  MoveFile(PChar(FileName), '\RECYCLED');


Это не удаление, а перемещение в другую директорию,
првда с не очень красивым именем  smile 

Автор: Rohoss 20.2.2008, 23:11
Это наверное корзина. Нужно сначала снять атрибуты с файла, но если ограничен доступ файловой системой NTFS думаю будет посложнее  smile 

Автор: MIX55 28.2.2008, 21:50
У Гарри Неббета написано про функцию название не помню которая позволяет осуществить такое

Автор: EndErr 29.2.2008, 09:56
А кто знает по какому принципу работает Unlocker?

Автор: RinOSpro 20.3.2008, 15:35
EndErr  - Показывает какой процесс использует файл потом завершает этот процесс и удаляет файл. Но это не поможет если к премеру хочешь удалить системный файл который открыт скажем smss.exe или crss.exe.

Автор: Rennigth 20.3.2008, 17:33
Цитата(RinOSpro @  20.3.2008,  15:35 Найти цитируемый пост)
завершает этот процесс 

На сколько я помню он процесс не завершает. Скорее всего он просто закрывает хендл файла из контекста процесса открывшего файл.

Автор: RinOSpro 21.3.2008, 11:46
Rennigth - у меня щас этой проги нет под рукой но всетаки наверно завершает, я один раз непомню что хотел удалить. но перед удалением он показал что исползуется процессом explorer.exe и предложил что сделать с файлом удалить, переименовать, переместить я выбрал удалить и эта прога грохнула explorer. 
Может версия у меня старая была хз smile 

Автор: MetalFan 21.3.2008, 12:06
RinOSpro, это наверное был глюк) сколько пользуюсь unlocker'ом - ниразу у меня процессы не убивались

Автор: Rennigth 21.3.2008, 12:12
Цитата(RinOSpro @  21.3.2008,  11:46 Найти цитируемый пост)
прога грохнула explorer

Ну это уже скорее всего издержки производства smile Ни кто же не гарантирует живучесть процесса после такого "хирургического" вмешательства. Я эксперементировал с mssql-вой приаттаченной базой, база действительно разлочилась, а скуль хоть и поругался, но всеже не упал smile

Автор: RinOSpro 12.12.2008, 18:28
Код

  MoveFileEx('Prog.exe', 'c:\windows\Progdel',  MOVEFILE_WRITE_THROUGH); // переименование запущенного экзешника
  MoveFileEx('c:\windows\Progdel', nil,  MOVEFILE_DELAY_UNTIL_REBOOT); // с удалением после перезагрузки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)