none
ShellExecuteについて RRS feed

  • 質問

  • ①main.exeがフォルダ「soft」にある「soft1」フォルダのsub.exeを起動
    ②sub.exeが同じ「soft1」フォルダにあるa.textを読み込む

    このときなんですが、main.exeが
    ShellExecute(NULL,"open","sofr/soft1/sub.exe",NULL,"soft/soft1/",SW_SHOW);
    のように指定するとsub.exeがa.textを見つけられずに失敗します。
    理由がまったくわかりません。どなたかおしえてください。
    2010年4月7日 13:54

回答

  • sub.exe が a.text を見つけられず、ですか? ShellExecute そのものが失敗しません?

    If a relative path is provided at lpFile , do not use a relative path for lpDirectory .

    と MSDN の ShellExecute 関数の解説にあるとおり、lpFile と lpDirectory の両方に相対パスは使用できません。GetFullPathName とか使って lpFile をフルパスで指定するようにすればいいのではないでしょうか。

    2010年4月7日 14:38

すべての返信

  • sub.exe が a.text を見つけられず、ですか? ShellExecute そのものが失敗しません?

    If a relative path is provided at lpFile , do not use a relative path for lpDirectory .

    と MSDN の ShellExecute 関数の解説にあるとおり、lpFile と lpDirectory の両方に相対パスは使用できません。GetFullPathName とか使って lpFile をフルパスで指定するようにすればいいのではないでしょうか。

    2010年4月7日 14:38
  • おっしゃるとおりlpFileを一度フルパスに変換することで正常に作動しました。

    ありがとうございました。

    2010年4月8日 4:56