获取给定进程的文件句柄

Rub*_*nsh 6 c# winapi

我需要一种方法来获取给定进程的所有文件句柄.

例如,给定一个winword.exe进程句柄,我想获得该进程的文件句柄列表(doc文件等).

我通过C#/ pInvoke使用Win32 api.

谢谢!

Dar*_*rov 8

一个简单的解决方案是使用handle.exe并读取其输出.另一个解决方案是使用P/Invoke和NtQuerySystemInformation函数.有关的Sysinternals论坛后有更多的细节,以及该文章在CodeProject上.在托管代码中执行它可能非常困难,因为您需要编写驱动程序来读取内核地址空间.

我建议你在Win32函数中公开所需的功能,你可以从托管代码中调用它.