サードパーティのデバッグビューア(DbgView)が実行されているかどうかを監視するコードを記述しています。私はDebugger.IsAttachedで簡単に完全なデバッガを処理できますが、DbgViewを追跡するには、いくつかのイベントを監視する必要があります。私はここで、この記事で私のコードを基づかています:イベント(Win32イベント)がリセットされるのを待つことができますか?
http://unixwiz.net/techtips/outputdebugstring.htmlだから、今、私が持っている:
IntPtr h1 = CreateEvent(IntPtr.Zero, false, false, "DBWIN_BUFFER_READY");
WaitForSingleObject(h1, 0xFFFFFFFF);
//bool b2 = h1 != IntPtr.Zero;
CloseHandle(h1);
は素晴らしい作品。 DbgViewが開始してキャプチャを開始するまで、コードはブロックされます。まさに私が欲しいもの。今問題は、キャプチャがいつ止まるのかわかりません。
イベントがリセットまたはリリースされたとき、またはDbgViewが何をしているときにチェックする方法はありますか?ループ内でイベントをポーリングするのが好ましい。
あなたは本当にどのような問題を解決しようとしていますか?リスナーが聞き始めたとき、何をする予定ですか?リスナーが聞き取りをやめるのを知ることはなぜ重要ですか? – IInspectable
@IInspectable、はい、正確です。リスナーがいつ始まり、いつリスナーが止まるかを知りたい。 Debugger.IsAttachedはデバッガを処理しますが、DbgViewのようなリスナは異なる方法で動作し、IsAttachedフラグをトリガしません。最終的なゲームは、高価になる可能性があるため、誰かが聞いているときにのみ診断情報を生成することです。私はこの動作を自動化したい。上記のコードは、誰かが聞いているが、いつ停止するかを知ることを試みている軽い指標です。 – SledgeHammer
[イベントトレース](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968803.aspx)の適用性を評価しましたか?これは、あなたが解決しようとしている試行錯誤の中で、OS全体で使用されている問題に対する強力な解決策です。 – IInspectable