dポイントプレゼントキャンペーン実施中!

VC++, MFC を使ってプログラムを書いています。

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

A 回答 (1件)

ShellExecuteなら4番目の引数 lpParametersに "foo=bar"を渡すべきでは無いでしょうか


lpFileにEXEファイルのパスを渡して

ShellExecute( hWnd, "open", "exeのパス", "foo=bar", NULL, SW_SHOW );
といった具合では ・・・

この回答への補足

すみません。情報不足でした。

ShellExecute を実行する側のプログラムには手を入れられないのです。

今の一般的なテキストエディターとかメールのエディター・ビューワーには、file://... をオープンする機能がありますが、その機能の実現には たいてい ShellExecute が使われているのではないか、と想像しています。

それら一般のプログラムから起動されたときに、foobar.exe のプロセスが ? 以降の文字列を取得する方法はないんだろうか、と思った次第です。

補足日時:2008/01/22 14:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!