| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > кто пытается удалить мой файл |
| Автор: AHTOLLlKA 22.5.2009, 13:47 |
| всем привет, суть такая: моя программа использует временный файл c:\temp\12312.tmp и какойто сторонний процес пытается его открыть, изменить, удалить. как определить что за процес это делает ?? |
| Автор: Alexeis 22.5.2009, 14:00 |
Может антивирус? |
| Автор: SneG0K 22.5.2009, 14:04 |
Не всегда обязательно. Может это пользователь удаляет... AHTOLLlKA, как узнать, не знаю, но могу тебе предложить права выставить... |
| Автор: Alexeis 22.5.2009, 14:11 |
| В данной конкретной ситуации можно посмотреть программой Unlocker. Запретить чтобы другие не лазили можно выставив флаг fmOpenShareExclusive при открытии или создании файла (CreateFile, TFileStream, OpenFile). И еще момент, если нужно сгенерировать уникальное имя для временного файла, то лучше воспользоваться функцией GetTempFileName |
| Автор: AHTOLLlKA 22.5.2009, 14:11 | ||||
нет, антивируса нету, ни фаеров ни каких других сторонних "предметов" которые могут помешать файл создан мной, и заблокирован
и я его открываю блокнотом, вот ерально ли отследить в моей программе что файл, который я держу, пытаеться открыть блокнто ? |
| Автор: Alexeis 22.5.2009, 14:15 | ||
чтобы запретить нужно сделать
Определить реально, в худшем случае можно поставить хук на апи функцию, но думаю что ID процесса получить можно (забыл название функции), затем перечисляя процессы выяснить кому принадлежит. |
| Автор: Alexeis 22.5.2009, 15:05 |
Гм.. чуток погуглил есть функция FsRtlAreThereCurrentFileLocks, FsRtlGetNextFileLock, но все это пашет только в kernel mode. |
| Автор: AHTOLLlKA 22.5.2009, 15:21 | ||
хм.. почемуто мне кажется что это нето, он определит заблокирован файл или нет вроде как.. вот нашел ReadDirectoryChangesW в принцыпе подойдет для слежения за файлом... но по нему не узнать кто изменяет файл... |
| Автор: Alexeis 22.5.2009, 16:01 | ||
Можно узнать зачем это вообще надо? Может есть более простое решение? На счет программ я почитал про 3 аналога, все имеют драйвер в режиме ядра, у одной дополнительно еще хук. |
| Автор: AHTOLLlKA 22.5.2009, 17:26 |
| я хотел написать мини тулзу которая будет следить за важными файлами, и при попытке кого либо изменить или удалить их... оповещал бы... |