現在、他のプロセスのウィンドウが最大化/最大化されているときに警告する機能を使用するプログラムに取り組んでいます。最大化イベントとは、右上隅の閉じるボタンの横にある記号を押すことを意味します。
これを実現するために、SetWinEventHook関数を使用します。問題は、このイベントをキャッチするための正しいイベント コードが見つからないことです。定数を試してみましたEVENT_SYSTEM_MOVESIZESTART, EVENT_SYSTEM_MOVESIZEEND, EVENT_SYSTEM_MINIMIZESTART and EVENT_SYSTEM_MINIMIZEEND
が、すべてが最大化イベントでトリガーされないようです。ただし、SetWinEventHook の実装が機能するように、他のイベントをトレースできます。
他のプロセスから最大化イベントをキャプチャする方法を知っている人はいますか?
前もって感謝します。
友好的な挨拶で、ボブ
コード例:
// To catch the event
SetWinEventHook(EVENT_MIN, EVENT_MAX, IntPtr.Zero, new WinEventDelegate(WinEventProc), GetProcess(), 0, 0);
// The handler
private void WinEventProc(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
{
// TODO: Filter maximize event here
if (eventType == ?)
{
// Do something
}
}