如何在C#中按进程获取打开的文件句柄列表?

如何在C#中按进程获取打开的文件句柄列表?

如何通过C#中的进程id获取打开的文件句柄列表?

我对挖掘和获取文件名也很感兴趣。

寻找与ProcessExplorer所做的编程等价的程序。

这很可能需要互操作。

考虑到在这个问题上增加了一个赏金,这个实现是非常复杂的。


缥缈止盈
浏览 356回答 3
3回答

潇湘沐

从托管代码中很难做到这一点。有一个代码工程样本大部分内容可以在互操作中完成,但是您需要一个驱动程序来获取文件名,因为它位于内核的地址空间中。ProcessExplorer将驱动程序嵌入其资源中。让这一切从C#连接起来,支持64位和32位,将是一个主要的头痛。

四季花海

您可以将P调用到NtQuerySystemInformation函数来查询所有句柄,然后从那里开始。这,这个谷歌小组讨论有细节。
打开App,查看更多内容
随时随地看视频慕课网APP