>在.net 中檢索父進程的託管方法 在.NET框架中獲得父過程通常需要使用平台Invoke(P/Invoke),從而引入潛在的複雜性。 本文提出了一種託管解決方案,消除了對P/調用的需求和提高效率。
>使用自定義實用程序類:
>
該解決方案採用自定義類,在不訴諸於未託管的代碼的情況下檢索父進程信息:
ParentProcessUtilities
存儲過程環境塊(PEB)地址,
<code class="language-csharp">public struct ParentProcessUtilities { public IntPtr PebBaseAddress; public IntPtr InheritedFromUniqueProcessId; }</code>
檢索父進程信息:PebBaseAddress
>
InheritedFromUniqueProcessId
可以使用以下方式獲得當前過程的父過程
>實現詳細信息:利用Windows本機API
此方法利用Windows本機API(NTDLL)的
<code class="language-csharp">Process parentProcess = ParentProcessUtilities.GetParentProcess();</code>
<code class="language-csharp">Process parentProcess = ParentProcessUtilities.GetParentProcess(processId); Process parentProcess = ParentProcessUtilities.GetParentProcess(processHandle);</code>
以上是如何在不使用P/Invoke的情況下以.NET獲取父進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!