我想通过输入程序的标题来查找进程的名称。例如,如果我输入“Google Chrome”,我希望控制台打印“chrome”(进程名称在任务管理器中的显示方式)谢谢
答案 0 :(得分:2)
Process
中没有任何属性,如任务管理器流程说明中所示,您可以使用FileDescription
找到EXE
FileVersionInfo
var processes = Process.GetProcesses().ToList();
foreach (var p in processes)
{
try
{
var description = FileVersionInfo.GetVersionInfo(p.MainModule.FileName).FileDescription;
if (description == "Google Chrome")
{
Console.WriteLine(p.ProcessName);
break;
}
}
catch (Exception ex)
{
// You will get Access is denied exception for some processes when accesses `MainModule`
}
}
注意:以管理员身份运行您的应用
答案 1 :(得分:0)
Process对象有一个名为MainWindowTitle的属性,它可能是您引用的属性。 System.Diagnostics名称空间是Process对象所在的位置。然后,您可以使用Process.GetProcesses()来检索系统上运行的所有进程。然后,遍历此列表并查找具有窗口标题的标题,该标题与您要查找的值匹配,从循环中断,并输出proc.ProcessName;
foreach(Process proc in Process.GetProcesses())
{
if(proc.MainWindowTitle == "Google Chrome")
{
Console.WriteLine(proc.ProcessName);
break;
}
}