【问题标题】:Getting the file handles of given process [duplicate]获取给定进程的文件句柄[重复]
【发布时间】:2014-07-29 12:11:49
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: c# winapi


    【解决方案1】:

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

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

    【讨论】:

    • 可以handle.exe查看STDERR和STDOUT吗?当我做handle.exe -a -p 1234时,输出的最低句柄数是4,但STDERR是#2正确吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2023-03-29
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      相关资源
      最近更新 更多