- 締切済み
ShellExecute で file://... をオープン
VC++, MFC を使ってプログラムを書いています。 ShellExecute で file://C:/TEMP/foobar.exe?foo=bar をオープンすると、ちゃんと foobar.exe が起動されますが、クエリーの部分(foo=bar)の情報を取る方法がわかりません。 GetCommandLine で帰る文字列は foobar.exe までしかない。 GetEnvironmentStrings で帰る環境変数にも含まれない。 ? 以降の部分の文字列を取得する方法は無いのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.1
ShellExecuteなら4番目の引数 lpParametersに "foo=bar"を渡すべきでは無いでしょうか lpFileにEXEファイルのパスを渡して ShellExecute( hWnd, "open", "exeのパス", "foo=bar", NULL, SW_SHOW ); といった具合では ・・・
補足
すみません。情報不足でした。 ShellExecute を実行する側のプログラムには手を入れられないのです。 今の一般的なテキストエディターとかメールのエディター・ビューワーには、file://... をオープンする機能がありますが、その機能の実現には たいてい ShellExecute が使われているのではないか、と想像しています。 それら一般のプログラムから起動されたときに、foobar.exe のプロセスが ? 以降の文字列を取得する方法はないんだろうか、と思った次第です。