C#通过名称获取进程

问题描述 投票:-1回答:2

我怎样才能通过名称获取进程?

例如,如果进程名称为 "Test",它不会做任何事情,但如果没有 "Test "这个名字,它将会说 MessageBox.Show("Cannot find process Test");

我用的是

        foreach (var process in Process.GetProcessesByName("Test"))
        {
            //do nothing
        }

但是 foreach 没有 else但我不能这样做。有什么办法吗?

c# foreach
2个回答
1
投票

试试这个方法。

var processes = Process.GetProcessesByName("Test");

if(processes.Length == 0)
{
    MessageBox.Show("Cannot find process Test");
}
else
{
    foreach(var process in processes)
    {
        //do something
    }
}

1
投票

从文档中可以看到 System.Diagnostics.Process.GetProcessesByName:

回报: 流程[] 类型的数组 流程 表示运行指定应用程序或文件的进程资源。

这告诉我们 GetProcessByName 将返回一个共享相同进程名的进程数组。

相反,我们可以简单地检查数组是否为空。

var processes = Process.GetProcessesByName("Test");

if (processes.Length == 0)
{
    MessageBox.Show("Cannot find process Test");
} 
else
{
    // found processes
    // iterate and do something with them
    foreach (var process in processes)
    {
        //do something
    }
}

这将只显示来自 if 块,如果没有名称为 "Test" 可以被发现。否则,你可以对找到的进程进行迭代,并在 else 块。

© www.soinside.com 2019 - 2024. All rights reserved.