ウィンドウのアクティブウィンドウ変更イベントをキャプチャしようとしています。ユーザーがVSで作業していて、IEに切り替える場合、このActive Window Changed Eventをキャプチャしたいとします。私はインターネット上で検索し、多くの例が見つかりましたが、何も私のために働くようです。アクティブウィンドウの変更イベントをキャプチャする際の問題
これは私が今までに書いたコードですが、これに何が間違っているのか分かりません。私は誰もが、私はプログラム的または概念的に間違ってやっているものを識別することができ、この
class Program
{
delegate void WinEventDelegate(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime);
[DllImport("user32.dll")]
static extern IntPtr SetWinEventHook(uint eventMin, uint eventMax, IntPtr hmodWinEventProc, WinEventDelegate lpfnWinEventProc, uint idProcess, uint idThread, uint dwFlags);
private const uint WINEVENT_OUTOFCONTEXT = 0;
private const uint EVENT_SYSTEM_FOREGROUND = 3;
static void Main(string[] args)
{
WinEventDelegate dele = new WinEventDelegate(WinEventProc);
IntPtr m_hhook = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, IntPtr.Zero, dele, 0, 0, WINEVENT_OUTOFCONTEXT);
Console.ReadKey();
}
static void WinEventProc(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime)
{
Console.WriteLine("Something");
}
}
WinEventProc
を通じて必要なイベントをキャプチャすることができませんと呼ばれることは決してありませんか?私はWindows 7を使用しています
非常に良い、ワーキングソリューションはここにある:http://stackoverflow.com/a/11943387/134761 – angularsen