Если я прочитал или записал в файл и получил ошибку 33 или 32, я хотел бы записать сообщение, содержащее имя другого процесса (ов), открывшего файл. Должен быть Win32 API, который я мог бы использовать для получения этой информации. Обозреватель процессов отображает его. Конечно, Process Explorer также содержит информацию обо всех процессах в памяти. Я бы предпочел найти виновного, не опрашивая все процессы.





Этот, кажется, делает то, что вы хотите.
очевидно, что он использует какой-то скрытый API, такой как NtQueryInformationProcess.
Программа Handle из SysInternals также делает это., но не знаю как. Я не думаю, что для этого существует единый документированный API. Я думаю, вам нужно перебрать процессы, перечислить каждый из дескрипторов в процессе, а затем определить имя файла, связанное с этим дескриптором.
получить окончательное решение, используя только код C#? не инструменты, такие как ручка или другой