• ベストアンサー

アプリケーションのインストール先のパスを取得する方法について。

訳あって、他の製品のアプリケーションを起動するプログラムを作っています。 そこで、アプリケーションのインストール先(パス)を取得する方法はないでしょうか? (たとえば、EXCELだとF:\Program Files\Microsoft Office\Office\EXCEL.EXE) APIなどでも調べてみたのですが、見あたりません。フォームを持たないプログラムなので、可能なら自動的に調べてパスを特定したいと考えています。 よろしくお願いします。

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

  • ベストアンサー
  • xruz
  • ベストアンサー率50% (72/143)
回答No.1

レジストリにアクセスするしか方法が無いと思いますが。。。 確か\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Windows\CurrentVersion\App Paths配下にあったはずです。 VBでレジストリへアクセスする方法は知りませんのでゴメンナサイ。

shigeki-yy
質問者

お礼

早速の回答ありがとうございます。 そうですね。単純にインストール先を取得するには、やっぱりレジストリを参照するしかなさそうな気がします。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

(1)ShellExecute関数 そもそもフルパスを取得する必要があるのか? 大抵のアプリはパスなしのEXE名("Excel.exe"等)をShellExecute関数に指定すれば動きます (2)FindExecutable関数 xlsファイルをFindExecutable関数に渡せばExecelのフルパス名が分かります http://www.vbvbvb.com/jp/gtips/0951/gFindExecutable.html (3)SearchPath関数 "Excel.exe"を検索する http://www.vbvbvb.com/jp/gtips/0101/gSearchPath.html

shigeki-yy
質問者

お礼

回答、ありがとうございます。参考になりました。 しかし。 (1)ShellExecute関数  残念ながら呼び出したいプログラムは、EXE名のみでは実行できず。 (2)FindExecutable関数  関連づけられている拡張子もないため、この手も使えず。   なので、考えられるとしたら、(3)SearchPath関数ですが、この方法だとローカルディスクの全領域を調べるとしたら、結構な時間がかかってしまうため、あんまり使いたくありません。  単純にインストール先を取得するには、xruzさんが言うようにレジストリを参照するしかないような気がします。

関連するQ&A