Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mendapatkan proses induk dalam .net tanpa menggunakan p/invoke?

Bagaimana untuk mendapatkan proses induk dalam .net tanpa menggunakan p/invoke?

Linda Hamilton
Linda Hamiltonasal
2025-01-28 05:12:10419semak imbas

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

<.>

Mendapatkan proses induk dalam .NET adalah tugas biasa yang boleh dilaksanakan menggunakan panggilan platform (p/invoke). Walau bagaimanapun, artikel ini memperkenalkan alternatif yang tidak perlu menggunakan p/invoke. Penyelesaian ini menggunakan fungsi ntQueryInformationProcess di perpustakaan NTDLL.DLL, tetapi ia tidak berinteraksi secara langsung melalui p/invoke, tetapi menggunakan kelas ParentProcessUtilities untuk abstrak proses.

Kelas ParentProcessUtilities mengandungi kaedah statik, seperti GetParentProcess, yang menerima contoh kelas Procestess yang menunjukkan proses proses induk.

<code class="language-csharp">[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;
}</code>
fungsi NtQueryInformationProcess untuk mendapatkan maklumat asas proses yang ditentukan, termasuk ID Proses Warisan. Dengan menanyakan maklumat ini dan menukarkannya ke dalam contoh proses, penyelesaian ini membolehkan dengan mudah mengambil proses induk dalam kod hosting tanpa menggunakan p/invoke.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan proses induk dalam .net tanpa menggunakan p/invoke?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn