2

スクリーンスクレイピングアプリケーションのアップグレードに取り組んでいます。ActiveXコントロールを使用して、IBMメインフレームから画面をスクレイプしています。メインフレームプログラムが頻繁にハングしてActiveXコントロールをクラッシュさせ、アプリケーションがクラッシュします。メインフレームまたはActiveXソースコードにアクセスできません。独自のActiveXコントロールを作成するつもりはありません。

ActiveXコントロールをカプセル化して、アプリケーションがコントロールでハングしていることを検出し、プロセスを強制終了してコードで再起動できるようにするための最も簡単な方法は何ですか?

2つの別々のアプリケーションを作成する必要がありますか?一方は他方をチェックし、ハングしたときにプロセスを強制終了/再開するコントローラーとしてですか?

それらは別々のアプリドメインに存在する必要がありますか?別々のアプリドメインにある場合でも、2つのプログラムが相互に通信することは可能ですか?

4

1 に答える 1

1

System.Diagnostics.Process.Start()を使用して実行可能ファイルを開始できます。これにより、プロセスがまだアクティブであるかどうかを定期的にチェックするために使用できるRespondingプロパティを持つProcessオブジェクトが返されます。

ただし、これを行うには2つの別個のアプリケーションが必要です。また、監視対象のアプリケーションにはメインウィンドウが必要です。これは、アプリケーションがメインウィンドウのメッセージキューからのメッセージをまだ処理しているかどうかを確認することで監視が機能するためです。これは、ウィンドウがウィンドウタイトルに「応答しない」を追加することを知っているのと同じ方法です。

于 2008-09-12T18:01:22.623 に答える