【问题标题】:How to find the running console application [duplicate]如何找到正在运行的控制台应用程序[重复]
【发布时间】:2018-01-27 00:53:44
【问题描述】:

我可以通过这段代码找到目标应用程序当前是否正在运行。但我也想找出那个应用程序的执行路径。但我看不出有什么办法。请告诉我如何找到它的执行路径?

static public bool IsProcessRunning(string name)
{
    foreach (Process clsProcess in Process.GetProcesses()) 
    {
        if (clsProcess.ProcessName.Contains(name))
        {
            return true;
        }
    }
    return false;
} 

【问题讨论】:

  • 查看this线程C#:如何获取运行进程的完整路径?

标签: c# console-application


【解决方案1】:

处理实例并使用 MainModule 属性获取位置。

像这样的

static public bool IsProcessRunning(string name)
{
   foreach (Process clsProcess in Process.GetProcesses()) 
   {
       if (clsProcess.ProcessName.Contains(name))
          {
            Console.WriteLine(clsProcess.MainModule.FileName);
            return true;
           }
         }
         return false;
} 

【讨论】:

【解决方案2】:

你可以得到路径。

var executionPath = clsProcess.MainModule.FileName

【讨论】:

  • 未处理异常:System.ComponentModel.Win32Exception:32 位进程无法访问 64 位进程的模块。
【解决方案3】:

试试 MainModule 属性

clsProcess.MainModule.FileName

【讨论】:

  • 未处理异常:System.ComponentModel.Win32Exception:32 位进程无法访问 64 位进程的模块。
  • @masiboo 将其编译为 64 位然后...
【解决方案4】:

你应该使用ProcessModule.FileName属性:

var runningDir = System.IO.Path.GetDirectoryName(process.MainModule.FileName);

【讨论】:

  • 我得到以下异常:未处理异常:System.ComponentModel.Win32Exception:32 位进程无法访问 64 位进程的模块。
【解决方案5】:

你可以使用下面的代码sn-p。

 var process = Process.GetCurrentProcess(); // Or whatever method you are using
 string fullPath = process.MainModule.FileName;

更新

public string GetProcessPath(string name)
{
    Process[] processes = Process.GetProcessesByName(name);

    if (processes.Length > 0)
    {
        return processes[0].MainModule.FileName;
    }
    else
    {
        return string.Empty;
    }
}

【讨论】:

  • 我试图找出另一个应用程序的执行路径,而不是当前应用程序的执行路径。
  • 检查更新的答案
  • 未处理异常:System.ComponentModel.Win32Exception:32 位进程无法访问 64 位进程的模块。
  • 如果你的进程是非托管代码,所以它不能返回一个 .NET 对象作为 MainModule
  • 您也可以尝试将您的应用程序作为任何 cpu 运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 2019-01-30
  • 2013-02-11
  • 2018-11-21
  • 1970-01-01
相关资源
最近更新 更多