Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中进程名称的标题#_C# - Fatal编程技术网

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

C# C中进程名称的标题#,c#,C#,我想通过输入程序的标题找到进程的名称。例如,如果我键入“Google Chrome”,我希望控制台打印“Chrome”(进程名称在任务管理器中的外观)。谢谢进程对象有一个名为MainWindowTitle的属性,它很可能就是您所指的属性。System.Diagnostics命名空间是流程对象所在的位置。然后可以使用Process.GetProcesses()检索系统上运行的所有进程。然后遍历该列表,查找窗口标题与要查找的值匹配的列表,中断循环,并输出proc.ProcessName foreac

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

进程对象有一个名为MainWindowTitle的属性,它很可能就是您所指的属性。System.Diagnostics命名空间是流程对象所在的位置。然后可以使用Process.GetProcesses()检索系统上运行的所有进程。然后遍历该列表,查找窗口标题与要查找的值匹配的列表,中断循环,并输出proc.ProcessName

foreach(Process proc in Process.GetProcesses())
{ 
     if(proc.MainWindowTitle == "Google Chrome")
     { 
        Console.WriteLine(proc.ProcessName); 
        break;
     }
}

Process
中没有属性,与Task Manager Process Description中一样,您可以使用
FileVersionInfo
找到
EXE的
FileDescription

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

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

进程对象有一个名为MainWindowTitle的属性,该属性很可能就是您所引用的属性。System.Diagnostics命名空间是流程对象所在的位置。然后可以使用Process.GetProcesses()检索系统上运行的所有进程。然后遍历该列表,查找窗口标题与要查找的值匹配的列表,中断循环,并输出proc.ProcessName;foreach(Process proc in Process.getProcesss()){if(proc.MainWindowTitle==“Google Chrome”){console.WriteLine(proc.ProcessName);break;}}为什么不将其作为一个答案写在@JohnBartels?当然,任何允许多个实例的操作都可能返回错误的实例,或者返回许多实例。使用起来可能更简单:getProcessByName(字符串)