ホームページ > バックエンド開発 > C++ > p/invokeを使用せずに.NETで親プロセスを取得するにはどうすればよいですか?

p/invokeを使用せずに.NETで親プロセスを取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-28 05:12:10
オリジナル
439 人が閲覧しました

How to Get the Parent Process in .NET Without Using P/Invoke?

.NETで親プロセスを取得することは、プラットフォーム呼び出し(p/invoke)を使用して実装できる一般的なタスクです。ただし、この記事では、P/Invokeを使用する必要のない代替案を紹介します。 このソリューションは、ntdll.dllライブラリでntqueryinformationprocess関数を使用しますが、p/vokeを介して直接相互作用するのではなく、parentprocessutivitiesクラスを使用してプロセスを抽象化します。

ParentProcessutivitiesクラスには、親プロセスのプロセスを示すProcestessクラスのインスタンスを受け入れるGetParentProcessなどの静的な方法が含まれています。

ntqueryinformationProcess関数継承プロセスIDを含む指定されたプロセスの基本情報を取得します。この情報を照会し、プロセスインスタンスに変換することにより、このソリューションにより、P/Invokeを使用せずにホスティングコードの親プロセスを簡単に取得できます。
[StructLayout(LayoutKind.Sequential)]
public struct ParentProcessUtilities
{
    // 这些成员必须与PROCESS_BASIC_INFORMATION匹配
    internal IntPtr Reserved1;
    internal IntPtr PebBaseAddress;
    internal IntPtr Reserved2_0;
    internal IntPtr Reserved2_1;
    internal IntPtr UniqueProcessId;
    internal IntPtr InheritedFromUniqueProcessId;
}
ログイン後にコピー

以上がp/invokeを使用せずに.NETで親プロセスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート