如何区分具有相同名称的进程

时间:2014-05-22 14:34:38

标签: c# process

如何判断具有相同名称的多个进程之间的区别?

我有一个程序将使用不同的参数启动相同的文件。除非父程序崩溃,否则我可以很好地管理进程。已启动的进程无法与父进程一起运行。当我重新启动程序时,如何区分每个实例?

2 个答案:

答案 0 :(得分:4)

您可以使用进程ID区分:

Process myProcess = Process.Start("C:\\Program Files (x86)\\MyProgram\\Program.exe");
int processId = myProcess.Id;

processId 是此处的关键。

答案 1 :(得分:1)

您应该能够使用WMI和给定的PID查询命令行参数,如下所示:

using (ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = 1234"))
{
    foreach (ManagementObject mo in mos.Get())
    {
        Console.WriteLine(mo["CommandLine"]);
    }
}

复制自:http://social.msdn.microsoft.com/Forums/en-US/8efe163b-927e-4895-9983-b8c47b515d7c/how-to-get-the-command-line-parameters-from-a-different-process-in-c