Здравствуйте, подскажите каким образом можно определить открыт ли в данный момент файл каким-то другим приложением? Думал найду в MSDN что-нить типа доступа к системной таблице дескрипторов, так ее нету такой насколько я понял!
[win32] нашел! как узнать открыт ли файл чем-то другим в системе?22.08.02 17:46 Автор: Stasich Статус: Незарегистрированный пользователь
> Здравствуйте, подскажите каким образом можно определить > открыт ли в данный момент файл каким-то другим приложением? > Думал найду в MSDN что-нить типа доступа к системной > таблице дескрипторов, так ее нету такой насколько я понял! Отаечаю сам себе:
Есть такая фича FindFirstChangeNotification
описана в MSDN SDK
поймать при помощи нее кто забрал файл не выйдет, но зато можно поймать когда файл будет изменен.
Так тебе что надо конкретно?22.08.02 20:53 Автор: HandleX <Александр М.> Статус: The Elderman
Если надо просто знать, открыл ли файл кто-то уже, но не нужно знать КТО, то пробуй сам открыть этот файл функцией CreateFile с параметром dwShareMode = 0. Этим ты откроешь этот файл в эксклюзивном режиме с гарантией, что более никто, так сказать... А если получишь ошибку типа Sharing Violation, значит уже кто-то твой драгоценный файл имеет ;-))))))
Отследить можно Filemon-ом,23.08.02 05:20 Автор: Zef <Alloo Zef> Статус: Elderman
исключительно рульная прога: перехватывает все файловые операции, в том числе окон ДОС и кернела, идет с сырцом, но естессно, сам перехватчик, это кернельный драйвер.