掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteEx()関数について (ID:57219)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Resありがとうございます。 >対象アプリが起動してからの初期化処理などに時間がかかるのではなく、>ShellExecuteEx での起動処理(ShellExecuteEx から戻ってくるまで)に時間が>かかるのでしょうか。それも妙な話ですが。 ShellExecuteEx()で呼び出しているのは、計算処理を行う「exeファイル」 ですので、計算処理待ちの状態となります。 >対象のアプリが、その中断したい長い処理を行っている間、親(つまり >ShellExecuteEx を実行する自プログラム)と、何らかの方法で通信することがで>きるのであれば、キャンセルされたことを子(起動された側)に伝えることができ>るでしょう。 >メッセージとか、パイプとか、イベントとか。 子は「exeファイル」の形でしか存在せず、中身はブラックボックスであり、 起動するのみしかできないので、メッセージを渡すことはできない状況です。 >ShellExecuteEx から帰ってくるまでの時間が長く、その間、子に手をつけること>ができないのであれば、もうそれは諦めて放っておきましょう。 >主スレッド側でキャンセルボタンが押されたことをどこかに記憶しておいて、サブ>スレッドの方で制御が戻ってきたときに、既にキャンセルボタンが押されていた >ら、子の起動はなかったものとして即終了してしまいましょう。 中断ボタンを押した後、即座に再度実行をした場合、 子スレッドが終了していないと問題が起きるような気がするのですがいかがでしょうか? 強制終了させる必要がやはりあるのでしょうか? ご教授していただけたらと思います。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.