Getting a path of a running process by name

前端 未结 3 1167
花落未央
花落未央 2021-01-12 04:22

How can I get a path of a running process by name? For example, I know there is a process named \"notepad\" running, and I want to get the path of it. How to get the path wi

相关标签:
3条回答
  • There is a method GetProcessesByName that existed in .Net 2.0:

    foreach (Process PPath in Process.GetProcessesByName("notepad"))
    {
        string fullpath = PPath.MainModule.FileName;
        Console.WriteLine(fullpath);
    }
    
    0 讨论(0)
  • 2021-01-12 04:47

    Try something like this method, which uses the GetProcessesByName method:

    public string GetProcessPath(string name)
    {
        Process[] processes = Process.GetProcessesByName(name);
    
        if (processes.Length > 0)
        {
            return processes[0].MainModule.FileName;
        }
        else
        {
            return string.Empty;
        }
    }
    

    Keep in mind though, that multiple processes can have the same name, so you still might need to do some digging. I'm just always returning the first one's path here.

    0 讨论(0)
  • 2021-01-12 05:00

    There are really two approaches you can take.

    You can do process by name:

    Process result = Process.GetProcessesByName( "Notepad.exe" ).FirstOrDefault( );
    

    or you could do what you do but use linq

    Process element = ( from p in Process.GetProcesses()
                        where p.ProcessName == "Notepad.exe"
                        select p ).FirstOrDefault( );
    
    0 讨论(0)
提交回复
热议问题