他のアプリケーションの終了を検知する

ここでは他のアプリケーションを起動して、それが終了するまで命令を実行しないように待機させます。



■必要なコンポーネント

■使用するAPI関数

■その他

■ソースは下記のようになります。追加している所は青色です。

C:\Windows\Calc.exeを実行して終了するまで待機する処理
procedure TForm1.Button1Click(Sender: TObject);
var
 STARTUPINFO      : TStartupInfo;    //STARTUPINFO構造体
 PROCESS_INFORMATION : TprocessInformation;//PROCESS_INFORMATION構造体
 ENDWORK        : integer;       //プロセスの終了コード
begin

 //他のアプリケーションを起動してその情報(プロセスのハンドル)を取得する
 CreateProcess('C:\Windows\Calc.exe', nil, nil, nil, False,
             0, nil, nil,STARTUPINFO,PROCESS_INFORMATION) ;


//アプリケーションが終了するまでループ
While True do
begin

  //プロセスの終了コードを取得する
   GetExitCodeProcess(PROCESS_INFORMATION.hProcess, ENDWORK);

  //終了したら処理中断を解除する
   If ENDWORK <> 259 Then
     begin
     ShowMessage('アプリケーションが終了しました。') ;
     Exit;
   end;

end;

end;




Win32APIのページへ



ホーム PV ランキング