Chrome,Firefoxなどブラウザを起動する機能をもつアプリを作っています。
Windowsの実行ファイルパス解決に関してよい方法を探しています。よろしくお願いいたします。
環境:WindowsXP SP3 Home, VC2008Express, C言語, Win32API
ブラウザを起動する機能は、
1. ブラウザのアイコンを持つボタンをクリックすると
2. そのブラウザ実行ファイルをCreateProcessまたはShellExecute関数で実行する
のですが、
ShellExecute関数は(なぜか) "chrome" という文字列のみからChromeが起動します。 おそらく内部で "chrome" という文字列から実行ファイルパス(exe/cmd/lnk等のファイルフルパス)を解決している
と思います。そのパス解決と同等の機能を使いたい(そしてアイコンを取得したい)のですが、実装方法がわかりません。
SearchPath関数は、環境変数PATHの中までは探してくれるようですが、"chrome" のみでは見つかりませんでした。
SearchPath( NULL, "notepad.exe", NULL, MAX_PATH, path, NULL ); // ◯
SearchPath( NULL, "chrome", NULL, MAX_PATH, path, NULL ); // ☓
ShellExecute関数はいったいどうやって実行ファイルを見つけ出しているのでしょうか。
その検索?解決?機能だけを使える関数があるとうれしいのですが、存在するでしょうか・・?