为什么按名称的特定进程不在我创建的列表中?

时间:2012-08-30 20:25:06

标签: c#

我有这个功能,我检查过程是否已启动以及何时退出。 但我在IF上使用断点并且列表计数一直是0。

当我运行任务amanager时,我看到bf3.exe * 32 那么这里有什么不对吗?

private void isProcessRunning()
{                
    Process[] proclist = Process.GetProcessesByName("bf3.exe");

    if (proclist.Length > 0)
    {
        Logger.Write("Battlefield 3 Started");
        alreadyRun = true;
    }
    else if (alreadyRun == true)
    {
        Logger.Write("Battlefield 3 Exited");
    }            
}

2 个答案:

答案 0 :(得分:10)

来自documentation

  

进程名称是进程的友好名称,例如Outlook,,不包含.exe扩展名或路径。 GetProcessesByName有助于获取和操作与同一可执行文件关联的所有进程。例如,您可以传递可执行文件名作为processName参数,以便关闭该可执行文件的所有正在运行的实例。

强调我的。

答案 1 :(得分:0)

删除.exe。这似乎对我有用。