Execメソッドでwaitパラメータを指定して起動したプロセスが終了したときに発生するイベントです。
EndProcessイベントは以下の構造をもちます。
Event { String processId; Number exitCode; }
processIdには、Execメソッドのwaitパラメータに指定した文字列がコピーされます。 processIdはどのプロセスが停止したか判断するために利用できます。
exitCodeは実行したプロセスの終了コードがコピーされます。 通常のプログラムは0で正常終了を意味することが多いですが、コードの意味付けはプログラムにより異なります。
DDEなど、プログラムの処理とプロセスが1対1で対応していないプログラムでは、起動時の状況によっては正常にEndProcessイベントが発生しないことがあります。
Runtimeオブジェクトがオブジェクトツリーに含まれない場合は、イベントハンドラの記述には注意が必要です。
オブジェクトツリーに含まれないオブジェクトから他のオブジェクトを参照する場合、グローバルオブジェクト、"//"からの絶対パス、自オブジェクトの子オブジェクトのみ、参照できます。
オブジェクトツリーに含まれない記述例
var rt = new Runtime { Function OnEndProcess(e) { /* Runtimeオブジェクトはオブジェクトツリーに含まれないため */ /* ここでは相対パスによる他のオブジェクトの参照はできない */ } } rt.Exec("html", "C:\\test.html", "htmlProc");
オブジェクトツリーに含まれる記述例
Runtime tr { Function OnEndProcess(e) { /* Runtimeオブジェクトはオブジェクトツリーに含まれるため */ /* ここでも相対パスによる他のオブジェクトの参照ができるが */ /* 使用後に削除しない限り永続的にオブジェクトが残る */ } } rt.Exec("html", "C:\\test.html", "htmlProc");ec("html", "C:\\test.html", "htmlProc");