- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ShellExecuteExでスペースを含む引数を渡すには?)
ShellExecuteExでスペースを含む引数を渡すには?
このQ&Aのポイント
- ShellExecuteEx関数を使用して、スペースを含む引数を渡す方法について知りたいです。
- コマンドラインで実行する際に、スペースを含んだ引数を正しく渡す方法を教えてください。
- ShellExecuteEx関数を使って実行ファイルを起動する際、スペースを含む引数の渡し方を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>引数1までで○○○.exeが実行されてしまい、スペースを挟んだ引数2以降が渡せていません。 はどのように確認されたのでしょうか? 実行するアプリ側に依存しますが…… ShellExecuteEx("○○○.exe", "\"引数1 引数2 引数3\"”, NULL, ・・・・, SW_SHOW); で、""でくくってみてはどうでしょうか? この場合、mainに渡されるargv[]で引数が正しく取れるのかは…やったことありませんので不明ですが。 # 半角スペースはtab区切りでの分解がされないまま渡されるので自分でやる必要がある…とかどこかで見たような。
お礼
アドバイスありがとうございます。 引数に""でくくり、SHELLEXECUTEINFO の ○.lpParameters に渡して、ShellExecuteEx関数を実行してみましたが思い通り実行されませんでした。 ○○○.exe の実行結果はやはりスペースで区切る前の引数1だけで動作していました。(確認方法としては、○○○.exe の実行結果で最初の引数1しか渡していない時の実行結果となる事です。) 引数としては渡されているが、実行ファイル(○○○.exe)の性質によるのかもしれません・・・。 とりあえず、.batファイル(コマンドラインで入力する通り記載)を作り、.batファイルを実行することで対応することにしました。 早々のアドバイスありがとうございました。