我需要一種獲取給定進程的所有文件句柄的方法。獲取給定進程的文件句柄
例如,給定一個winword.exe進程句柄,我想獲得該進程的文件句柄列表(doc文件等)。
我通過C#/ pInvoke使用Win32 api。
謝謝!
我需要一種獲取給定進程的所有文件句柄的方法。獲取給定進程的文件句柄
例如,給定一個winword.exe進程句柄,我想獲得該進程的文件句柄列表(doc文件等)。
我通過C#/ pInvoke使用Win32 api。
謝謝!
一個簡單的解決方案是使用handle.exe並讀取其輸出。另一個解決方案是使用P/Invoke和NtQuerySystemInformation函數。 This和this SysInternals上的論壇帖子有更多的細節,以及CodeProject上的article。在託管代碼中執行它可能非常困難,因爲您需要編寫驅動程序來讀取內核地址空間。
我建議你在可以從託管代碼調用的Win32函數中公開所需的功能。
可以handle.exe視圖STDERR和STDOUT?當我執行'handle.exe -a -p 1234'時,輸出的最低句柄數是4,但STDERR是#2是否正確? – 2013-07-08 14:42:31