• 締切済み

ShellExecute で file://... をオープン

VC++, MFC を使ってプログラムを書いています。 ShellExecute で file://C:/TEMP/foobar.exe?foo=bar をオープンすると、ちゃんと foobar.exe が起動されますが、クエリーの部分(foo=bar)の情報を取る方法がわかりません。 GetCommandLine で帰る文字列は foobar.exe までしかない。 GetEnvironmentStrings で帰る環境変数にも含まれない。 ? 以降の部分の文字列を取得する方法は無いのでしょうか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ShellExecuteなら4番目の引数 lpParametersに "foo=bar"を渡すべきでは無いでしょうか lpFileにEXEファイルのパスを渡して ShellExecute( hWnd, "open", "exeのパス", "foo=bar", NULL, SW_SHOW ); といった具合では ・・・

daneel
質問者

補足

すみません。情報不足でした。 ShellExecute を実行する側のプログラムには手を入れられないのです。 今の一般的なテキストエディターとかメールのエディター・ビューワーには、file://... をオープンする機能がありますが、その機能の実現には たいてい ShellExecute が使われているのではないか、と想像しています。 それら一般のプログラムから起動されたときに、foobar.exe のプロセスが ? 以降の文字列を取得する方法はないんだろうか、と思った次第です。

関連するQ&A

専門家に質問してみよう