获取给定进程的文件句柄

时间:2009-11-21 10:01:58

标签: c# winapi

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:8)

一个简单的解决方案是使用handle.exe并读取其输出。另一种解决方案是使用带有NtQuerySystemInformation函数的P / Invoke。关于SysInternals的Thisthis论坛帖子在CodeProject上有更多详细信息和article。在托管代码中执行它可能非常困难,因为您需要编写驱动程序来读取内核地址空间。

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

答案 1 :(得分:0)

作为Darin答案的补充,另请参阅this codeguru pagethis sysinternal forum post