Re: FILE_FLAG_DELETE_ON_CLOSE и Windows 7
От: xrc2  
Дата: 14.10.09 07:47
Оценка:
Здравствуйте, xrc2, Вы писали:

X>Привет.


X>Хочу реализовать метод удаления временных файлов после использования. Для этого думал воспользоваться FILE_FLAG_DELETE_ON_CLOSE при CreateFile, на XP работает отлично — но вот на Windows 7 не работает. Мне нужно запустить один dummy.exe и удалить его после завершения процесса (либо моего процесса, либо dummy.exe). Так вот проблема в том что после того как я скопировал файл в Temp директорию пытаюсь его открыть с флагом FILE_FLAG_DELETE_ON_CLOSE, но после этого не работает CreateProcess — либо наоборот, запускаю файл (CreateProcess) и после пытаюсь открыть файл — нет доступа. Как быть?


В общем отвечаю сам себе.
Выделил для себя несколько методов самоудаления.

1) .bat файл.
2) Inject в чужой процесс пусть это будет explorer.exe и от туда в лупе удаляем все что нам нужно. (сложен в реализации)
3) Очень понравился один метод через NTFS Stream. подробнее здесь. Проблема в том что будет работать только с NTFS, но к этому методу думаю можно прикрутить способ с FILE_FLAG_DELETE_ON_CLOSE для FAT'а — и думаю получиться универсальное решение, ну и конечно же можно для точной уверенности добавить 1) метод.

Кто что думает по поводу 3) метода?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.