掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
shell 起動のプログラムの終了について (ID:118297)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
起動したプログラムが終了するまで待機する方法には2種類あります。 一つはYUさんのコードのようにDo〜Loopで待つ方法。 これは待機している側がDo〜Loop内を延々繰り返しているので、 そのままではCPU使用率が100%になります。 これを回避する方法はねろさんのようにSleepを入れることです。 私はSleep(100)としていますが。精度によっては300だったりします。 もう一つはWaitForSingleObjectで待つ方法です。 これは呼び出された側が終了するまで 待機側(呼び出し元)が停止状態になりますので、CPU使用率は上がりません。 流れ的には次のようになるかと思います。 hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell) If hProc <> 0 Then Call WaitForSingleObject(hProc , INFINITE) Call CloseHandle(hProc) End If また、OpenProcessではなく、CreateProcessを使っても出来ます。 この場合は 1.CreateProcess 2.WaitForInputIdle 3.WaitForSingleObject 4.CloseHandle という流れになります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.