アプリ版:「スタンプのみでお礼する」機能のリリースについて

環境 VC6++/WindowsXP
やりたい事
・FTPで実行するコマンド定義ファイルを作成(コマンドは都度変わる)
・FTPを自動化するために-sオプションをつけ上記ファイル指定して実行
・その(FTP)結果をリダイレクトしてファイルに落とす
・FTPの終了待ってコマンド定義ファイルを削除
・できればDOS窓を出したくない

上記を行うために次の様なコードを書きました
sei.nShow = SW_SHOWNORMAL;
sei.fMask = SEE_MASK_FLAG_DDEWAIT;
ShellExecuteEx(&sei);
WaitForSingleObject(sei.hProcess, INFINITE);

FTPは動作するのですが実際の動作完了前に次の行に実行が移ってしまいます
(FTPは最後にquitします)
何か足りないことがあるのでしょうか?

当初system関数使いましたがDOS窓開くのがうっとおしいため
ShellExecuteExに変更しました
system関数ではDOS窓は出ますが完了まで戻ってきません

何かやらなければいけないことが足りないのか
どうあがいてもできないのか(FTPだから?)が判断付きません
どなたか詳しい方教えていただけないでしょうか
※ 極論言えば目的が達成できればどんな形でもいいので
  関数変えればできるでもいいです

A 回答 (1件)

ShellExecuteEx実行後のsei.hProcessが0になっていませんか?


fMaskに指定されているDDEWAITはこの場合は関係ないのではないでしょうか。
NOCLOSEPROCESSを指定してみてはどうでしょう。
    • good
    • 0
この回答へのお礼

>ShellExecuteEx実行後のsei.hProcessが0になっていませんか?
そのとおりです

>fMaskに指定されているDDEWAITはこの場合は関係ないのではないでしょうか。
セットしてもしなくても同じだったのでおそらく関係ないと思います

>NOCLOSEPROCESSを指定してみてはどうでしょう。
これを行うことでsei.hProcessに値が入り
思い道理の動きになることを確認できました

ありがとうございました

お礼日時:2009/12/22 21:43

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