我想捕獲窗口活動窗口更改事件。假設用戶正在使用VS並切換到IE,我想要捕獲此活動窗口更改事件。我在互聯網上搜索,發現很多例子,但似乎沒有任何工作對我來說。捕獲活動窗口更改事件中的問題
這是我寫到目前爲止的代碼,我不確定這是什麼問題。我無法通過此
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