类别:技术积累 / 日期:2024-11-30 / 浏览:2235 / 评论:0
在C#中,可以使用System.Diagnostics命名空间来获取父进程的ID。下面是一个示例代码:
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
int parentId = GetParentProcessId();
Console.WriteLine("Parent Process ID: " + parentId);
}
static int GetParentProcessId()
{
int parentId = -1;
try
{
Process currentProcess = Process.GetCurrentProcess();
parentId = currentProcess.Parent().Id;
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return parentId;
}
}
public static class ProcessExtensions
{
public static Process Parent(this Process process)
{
try
{
using (ManagementObject managementObject = new ManagementObject($"win32_process.handle='{process.Id}'"))
{
managementObject.Get();
int parentId = Convert.ToInt32(managementObject["ParentProcessId"]);
return Process.GetProcessById(parentId);
}
}
catch
{
return null;
}
}
} 这个例子中,GetParentProcessId方法使用System.Management命名空间获取当前进程的父进程ID。注意需要引用System.Management程序集。
发表评论 / 取消回复