>在.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中文网其他相关文章!