【问题标题】:Getting the path of an executable file that is run by means of the Process Class through C# [duplicate]通过C#获取通过进程类运行的可执行文件的路径[重复]
【发布时间】:2017-09-22 03:43:57
【问题描述】:

我在互联网上查询了正在运行的可执行文件的路径。 我找到了答案:

string executingApplicationPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);

它返回我正在运行的 C# 应用程序的路径。 我无法找到一种方法来返回我正在使用进程类运行的可执行文件的路径:

Process.Start("runningExecutableFile.exe", "arguments");

运行“runningExecutableFile.exe”的C#可执行文件位于该文件的目录中。我需要这个目录。问题是这个“runningExecutableFile.exe”可能位于不同的目录中,我只想将我的 C# 应用程序的 .exe 文件复制到该目录并以编程方式查找文件所在的路径。
请帮忙。

【问题讨论】:

  • processObj.MainModule.FileName 是可执行文件路径。
  • 您希望 runningExecutableFile.exe 在像您展示的那样被调用时感知自己的路径,或者您希望调用进程(也是您控制下的托管可执行文件)找到 @ 的绝对路径987654325@ 来自调用映像运行所在的当前目录?
  • @Alex K 非常感谢。它就像一个魅力。

标签: c# process


【解决方案1】:

要实现您正在寻找的内容,您可以使用 System.Diagnostics 库,如下所示:

using System.Diagnostics;

namespace YourNameSpace
{
    class Program
    {
        public static void Main()
        {
            Process[] pcs = Process.GetProcessesByName("YourProcessName");
            string path = pcs[0].MainModule.FileName;
        }
   }
}

.GetProcessesByName("..") 将返回一个进程数组,其中包含您想要的进程。要获得所需的路径,您只需使用 .MainModule.FileName 属性即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多