我怎样才能通过名称获取进程?
例如,如果进程名称为 "Test",它不会做任何事情,但如果没有 "Test "这个名字,它将会说 MessageBox.Show("Cannot find process Test");
我用的是
foreach (var process in Process.GetProcessesByName("Test"))
{
//do nothing
}
但是 foreach
没有 else
但我不能这样做。有什么办法吗?
试试这个方法。
var processes = Process.GetProcessesByName("Test");
if(processes.Length == 0)
{
MessageBox.Show("Cannot find process Test");
}
else
{
foreach(var process in processes)
{
//do something
}
}
从文档中可以看到 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
块。