繁体   English   中英

C#中的标题名称到进程名称

[英]Title name to Process name in C#

我想通过输入程序标题来查找进程的名称。 例如,如果我键入“ Google Chrome”,我希望控制台打印“ chrome”(进程名称在任务管理器中的显示方式)谢谢

像任务管理器的进程描述中一样, Process没有属性,您可以使用FileVersionInfo找到EXEFileDescription

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`
    }
}

注意:以管理员身份运行您的应用程序

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;
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM