2

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

当我运行任务管理器时,我看到 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");
    }            
}
4

2 回答 2

10

文档中:

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

强调我的。

于 2012-08-30T20:28:12.140 回答
0

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

于 2012-08-30T20:30:21.970 回答