2009-05-05 3 views
0

私はC#とCFで作業しており、MessageWindowを使用してWindowsメッセージを傍受する必要があります。MessageWindow - それが破壊されたかどうかをどのように知ることができますか?

MessageWindowが予期せず死んでしまうシナリオがあります。これは私には問題です。受け取っているメッセージがある程度重要なので、ウィンドウが消滅したという事実を記録したいのです。

残念ながら、私はこの種の通知を得ることはできません(少なくともManaged APIではありません)。誰も助けることができますか?

答えて

1

「ダイ」とは何を意味するのかよく分かりませんが、一般には、ウィンドウが破棄されたとき(MessageWindowの基礎となるものを含む)はWM_DESTROYコールを受け取ります。あなたはWndProcでそれを探すことができますか?

+0

私は最終的にバックグラウンドスレッドで作成し、OpenNETCFからApplication2.Run()を実行しました。 ロギングコードが下にあり、終了時にログに記録されます。 – Quibblesome

1

いくつかのアイデア:

することができます「ピング」あなた自身のすべてのX間隔の特別なメッセージを生成することによってMessageWindowなど?この「ping」を確認して、約1秒以内に破壊を検出することができます。 X時間。

または、DisposeまたはFinalizeの呼び出しを上書きできますか?これらが呼び出された場合。私は例外もスローされていないと仮定しています。

+0

私はpingできますが、MessageWindowは(ベースレベルで)IDisposableを実装しておらず、最終決定は決して決定的ではありません。またファイナライザーで他のオブジェクト(ロガーなど)に触れたいとも思いません。 – Quibblesome

関連する問題