• ベストアンサー

プログラムの在り処を取得する

VisualC#2005(.NETFramework2.0)で「プログラムの在り処を取得」する方法を 教えて下さい。 よく見かけるのは、ブラウザ(IE,Firefox,Netscapeあたり)や JREのフルパスを自動的に認識しているものです。 どうするとフルパスを取得出来るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • gaf777
  • ベストアンサー率62% (5/8)
回答No.4

こんにちわ。 レジストリを参照しフルパスを取得することが出来ます。 参考URLはJREのレジストリについてです。

参考URL:
http://java.sun.com/j2se/1.4.2/ja/runtime_win32.html

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

環境変数のPATH を利用して検索するのでは

  • talepanda
  • ベストアンサー率58% (45/77)
回答No.2

>ごめんなさい、自分自身ではなく、外部プログラムのフルパスを取得したいのです。 >リテラルではなく、実際に存在するパスを。 いまいちよくわからないんですけど、そのパスを取得したいプログラムについて、どのような情報をどうやって取得するんでしょう? プロセス一覧とかから?

naktak
質問者

補足

外部プログラムが起動している事が前提ではなくて、 NETFrameworkとかで、指定したプログラムが どこにあるのか超高速で走査するものとかあるのかな~くらいにしか考えてませんでした。 探しても見つらないもので・・・。 ムリなら、そういったものはどうやって実現しているのでしょう? よくインストール途中とかで自動認識されているようなものがあると思うのですが・・・。 あれは自動認識ではなくリテラルなんでしょうか? DドライブがシステムルートでもC:\Program Files\~iexplore.exeって出る、のかな・・・。

  • talepanda
  • ベストアンサー率58% (45/77)
回答No.1

Assembly myAssembly = Assembly.GetEntryAssembly(); string path = myAssembly.Location;

参考URL:
http://www.atmarkit.co.jp/fdotnet/dotnettips/016exepath/exepath.html
naktak
質問者

補足

ごめんなさい、自分自身ではなく、外部プログラムのフルパスを取得したいのです。 リテラルではなく、実際に存在するパスを。