是否有可能创建一个侦听器,每次窗口在WindowsOS中失去焦点时都会监听,然后运行回调函数?我正在使用win32api,win32net,wmi,win32gui,win32process。我正在使用GetActiveWindow()获取我需要的信息,但我正在使用睡眠计时器这样做,我想知道可能有一个列表器,我可以附加一个处理程序来处理每次窗口焦点更改为WindowsOS中的任何窗口时
答案 0 :(得分:1)
SetWinEventHook (EVENT_OBJECT_FOCUS, EVENT_OBJECT_FOCUS, 0, HandleWinEvent, 0, 0, WINEVENT_OUTOFCONTEXT )
void CALLBACK HandleWinEvent(HWINEVENTHOOK /*hook*/, DWORD event, HWND hwnd,
LONG /*idObject*/, LONG /*idChild*/,
DWORD dwEventThread, DWORD dwmsEventTime)
{
if (event == EVENT_OBJECT_FOCUS )
{
DbgPrint("%u:%x %p\n", dwmsEventTime, dwEventThread, hwnd);
}
}
答案 1 :(得分:0)
这是在Python中使用SetWinEventHook
的更详细示例:How to use winapi SetWinEventHook in python?