2017-09-21 2 views
-1

実行されている実行可能ファイルのパスを取得するためにインターネットでチェックインしました。プロセスクラスで実行される実行可能ファイルのパスをC#で取得する

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

私が実行しているC#アプリケーションのパスを返します。 は、私は答えを見つけました。 私はProcessクラスを使用して実行している実行ファイルのパスを返す方法を見つけることができませんでした:

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

「runningExecutableFile.exe」を実行しますC#の実行可能ファイルがあるディレクトリにあります。このファイル。私はちょうどこのディレクトリが必要です。問題は、この "runningExecutableFile.exe"が別のディレクトリに置かれている可能性があり、私はC#アプリケーションの.exeファイルをこのディレクトリにコピーし、ファイルが配置されているパスをプログラムで探したいだけです。
助けてください。あなたは、次のようたSystem.Diagnosticsライブラリを使用することができます探しているものを達成するために

+2

'processObj.MainModule.FileName'は実行ファイルのパスです。 –

+0

https://stackoverflow.com/questions/25604475/getmodulefilenameex-function-returns-wrong-path-of-system-processesを確認しましたか? – kvr

+0

runExecutableFile.exeが表示するように呼び出されたときにrunExecutableFile.exeが独自のパスを認識したい場合や、呼び出し元のプロセス(管理下の実行可能ファイル)が、runExecutableFile.exeの絶対パスを呼び出し元のイメージが実行されている現在のディレクトリ? – dlatikay

答えて

0

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プロパティを使用します。

関連する問題