获取正确的申请流程

时间:2017-04-28 22:53:36

标签: c# process task

如果有多个实例打开,我怎样才能获得应用程序的进程。

var processList= Process.GetProcessesByName("MyProcess");

实施例: -

2个Chrome浏览器已打开。在tast mgr的进程列表中,我有2个chrome进程。 我使用一些Apis&#34运行一个启动chrome的应用程序;而不是通过Process.Start("")"。现在我在Task Mgr porcesses中有3个

如何获取应用程序启动的进程,而不是已经打开的其他2进程?我怎样才能区分出上述陈述中的3个过程

我尝试根据 TotalProcessorTime 属性对它们进行排序,并获得最短时间的那个,但如果我决定在此之后打开另一个chrome,我会得到错误的进程。

1 个答案:

答案 0 :(得分:1)

根据您提供的信息,如果它始终是最新的过程,那么您可以尝试以下

MostRecentlyStartedProcess(Process.GetProcessesByName("MyProcess"));



public Process MostRecentlyStartedProcess(Process[] procceses)
{
  Process result = null;
  foreach (Process process in procceses)
  {
    if (result == null)
    {
      result = process;
    }
    else
    {
      if (process.StartTime < result.StartTime)
      {
        result = process;
      }
    }
  }
  return result;
}