首页>Program>source

我正在开发的桌面应用程序需要知道运行该应用程序时哪些窗口处于活动状态.目前它执行 GetForegroundWindow() 叫( user32.dll的 )每250毫秒.这种方法不是很准确。

是否有任何windows(wINAPI?)事件会在每次更改活动(聚焦)窗口时触发? 我想订阅我的回调函数。

谢谢。

最新回答
  • 2021-1-11
    1 #

    是的,您可以使用SetwinEventHook函数.

    hEvent = SetWinEventHook(EVENT_SYSTEM_FOREGROUND , 
        EVENT_SYSTEM_FOREGROUND , NULL, 
        WinEventProcCallback, 0, 0, 
        WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
    .......
    VOID CALLBACK WinEventProcCallback ( HWINEVENTHOOK hWinEventHook, DWORD dwEvent, HWND hwnd, LONG idObject, LONG idChild, DWORD dwEventThread, DWORD dwmsEventTime)
    {
        /* your code here */
    }
    

  • 2021-1-11
    2 #

    有wM_ACTIVATE消息,该消息发送到已激活和已禁用的窗口。

  • javascript:在文本区域或文本输入中多色文本突出显示
  • java:如何使Lombok和AspectJ一起工作?