.Net の ActiveX コントロールを使用したアプリケーションのハングの検出

StackOverflow https://stackoverflow.com/questions/59622

  •  09-06-2019
  •  | 
  •  

質問

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

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

2 つの別々のアプリケーションを作成する必要がありますか?1 つは、もう 1 つをチェックし、プロセスがハングしたときにプロセスを強制終了または再起動するコントローラーとして機能しますか?

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

役に立ちましたか?

解決

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

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

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