walterlv / BlogComments

3 stars 0 forks source link

post/monitor-foreground-window-on-windows #153

Open utterances-bot opened 11 months ago

utterances-bot commented 11 months ago

如何在控制台程序中监听 Windows 前台窗口的变化 - walterlv

前一段时间总会时不时发现当前正在打字的窗口突然失去了焦点,于是很希望有个工具能实时监听前台窗口的变化,并实时输出出来。 本文会介绍两类知识,一类是如何在 .NET/C# 程序中方便地调用 Win32 API,另一类是在控制台程序中开启 Windows 消息循环。

https://blog.walterlv.com/post/monitor-foreground-window-on-windows

nmgwddj commented 11 months ago

为什么早没看到这个文章。。。。找了很久没有找到监听外部进程的事件 API。

wx0322 commented 10 months ago

厉害 :thumbsup:

wutangyuan commented 9 months ago

uint @event 在该文档 https://learn.microsoft.com/zh-cn/windows/win32/winauto/event-constants 有解析对应的事件信息的,可以通过这个判断 回调回来的信息是否是 前台窗口,这样就不用每一次都去获取GetForegroundWindow()。上述的 WinEventProc方法的第三个参数就是窗口的句柄

luckyBricks commented 7 months ago

之前在微软工作时,碰到需要监控前台窗口聚焦的情形时,会拜托有winuser.h 源码实现的人手动加个trace,然后把私有编译好的库发给客户,让他们重现错误用debugview来看trace。。。