Как я могу найти, какие процессы имеют определенный файл, открытый и открытый, доступ и общие режимы? Кроме того, можно ли изменить эти значения для процесса? Или даже можно открыть файл для чтения, если он уже открыт для эксклюзивного доступа другим процессом?Как узнать, какой процесс открыл конкретный файл?
Обратите внимание: я не хочу аннулировать дескриптор процесса, открыв файл. Я просто хочу иметь доступ к файлу (если это возможно).
(я в основном спрашиваю о Windows, но решения для других платформ приветствуются, так как они способствуют знанию сообщества.)
Edit: Я нашел некоторые ответы на мой первый вопрос here и there.
Редактировать 2: Спасибо всем за упомянутые вами инструменты, но в основном я ищу программные методы (например, используя API Win32).
@Hosam Aly: «но я в основном ищу программную технику»: возможно, вы должны поставить это в вопросе в следующий раз? –
@ Митч, спасибо. Я сожалею о том, что. В следующий раз я буду более осторожен. –
Очевидно, что [менеджер перезапуска] (http://blogs.msdn.com/b/oldnewthing/archive/2012/02/17/10268840.aspx) может сделать это для Windows Vista и более поздних версий. –