私はネイティブプロセス内でCLRランタイムを開始するためにいくつかのコードを使用しています。そのプロセス内でNET実行可能ファイル。 私のマネージドアセンブリ/ホストCLRランタイム(CLRランタイムホストの場所)を実行したプロセスID /名前を取得
がそうのように、私は、リフレクションを使用している他の.NET実行可能ファイルをロードするには:Assembly.Load(file).EntryPoint.Invoke(null, null);
は今、私はランタイムを起動するC++のdllを注入し、それがその後、アセンブリを使用する.NET DLLを呼び出します。ロードして別の.NET実行可能ファイルをメモリにロードして実行します。
のdllを呼び出して、私の.NET実行可能ファイルをロードしたら
:System.Reflection.Assembly.GetExecutingAssembly().Location;
あるいは
Process.GetCurrentProcess().MainModule.FileName;
これは、当然のことながら、でも、別の内部ランニングかかわらず、実行ファイル自体の位置を返します。ホストプロセス。そのホストプロセスの名前を取得する方法はありますか?プロセスエクスプローラはホストプロセス内で実行していることを示しているため、正しく動作することがわかります。
もちろん、最初にロードされた.NET DLL内でこれらのコマンドを実行すると、適切なプロセス名が表示されます。
ありがとうございました。
編集:私もGetEntryAssembly()
とGetCallingAssembly()
を試してみました
。
申し訳ありませんが、私はStackOverflowがアクセシビリティのバグを修正することはできません。 – Joshua