掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecuteExプロセス(維持)の終了方法 (ID:47507)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
yTakeです。 こちらを参照させて頂き、ShellExecuteExを用いてプロセスを開始出来る様になりました。 このプロセスの終了方法で困っています。 通常の、 TerminateProcess( hProcess, 0); CloseHandle( hProcess ); で、終了できています。 ただ、本来ここでShellExecuteExで開始されるプロセスは、維持され、開始する際のフォームは先に終了されます。(fMask=SEE_MASK_NOCLOSEPROCESS) そこで”hProcess”の値をファイルに保存してフォームは終了し、後に起動された時に、ファイルからhProcessの値を読み出しゼロでなければ必要に応じて TerminateProcess( hProcess, 0); CloseHandle( hProcess ); にて終了させる事を考えました。 はじめのうち数回は終了出来ていたのですが、動作確認を繰り返すうちに終了されなくなりました。 ただ、hProcessはTHandle型ですが、ファイルへ書き出す時や読み出す時にIntegerとして、処理して、hProcessへ代入している点が気になります。 ソースは抜粋ですが、 書き出し部 str2 := IntToStr( hProcess ); AssignFile( tf, fname ); ReWrite( tf ); WriteLn( tf, f_ddscp ); WriteLn( tf, str2 ); CloseFile( tf ); 読み出し部 AssignFile( tf, fname ); Reset( tf ); ReadLn( tf, str ); f_ddscp := str; ReadLn( tf, str ); hProcess := StrToInt( str ); CloseFile( tf ); 終了部 if hProcess <> 0 then begin TerminateProcess( hProcess, 0 ); CloseHandle( hProcess ); hProcess := 0; end; となっています。 この様なhProcessをファイルへ書き出し読み出しするのは有効な手段でしょうか? Windows7 32bit + DELPHI XE3 です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.