我需要一种方法来获取给定进程的所有文件句柄。
例如,给定一个winword.exe进程句柄,我想获取该进程的文件句柄列表(doc文件等)。
我通过C#/ pInvoke使用Win32 api。
谢谢!
答案 0 :(得分:8)
一个简单的解决方案是使用handle.exe并读取其输出。另一种解决方案是使用带有NtQuerySystemInformation函数的P / Invoke。关于SysInternals的This和this论坛帖子在CodeProject上有更多详细信息和article。在托管代码中执行它可能非常困难,因为您需要编写驱动程序来读取内核地址空间。
我建议您在Win32函数中公开所需的功能,您可以从托管代码中调用它。
答案 1 :(得分:0)
作为Darin答案的补充,另请参阅this codeguru page和this sysinternal forum post