質問

シェル関数を使用して開くときにアプリケーションが処理することに注意してください。 次に、そのハンドルを使用して、後でアプリケーションを閉じます。 ただし、ユーザーは他のアプリケーションを自分で閉じることもできます。 そのハンドルをWindowsで再利用できるので、そのハンドルを使用するときに別のプロセスを閉じることができます。 可能であれば可能性はありますか?

役に立ちましたか?

解決

いいえ、心配する必要はありません。たとえば、OpenProcess、ShellExecuteEx()、またはCreateProcessによって返されるハンドルは、プロセスオブジェクトを存続させます。これにより、プロセスが終了した後にGetExitCodeProcess()を呼び出して終了コードを取得することができます。

オブジェクトは、最後のハンドルが閉じられるまで解放されません。このスレッドで与えられた以前のアドバイスとは反対に、CloseHandle()を呼び出すか、リークすることが非常に重要です。

他のヒント

プロセスハンドルで待機して、いつ終了するかを判断できます。

WaitForSingleObject(hProcess、INFINITE);

これが返されると、プロセスが終了したことがわかりますので、プロセスを閉じる必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top