Win32中是否有类似的_NET_WM_USER_TIME
属性或其他方式来获取按上次使用时间排序的窗口列表?
问问题
129 次
1 回答
0
有 EnumWindows 调用,它在任何给定时间列出了屏幕上的所有窗口:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx
其次,GetActiveWindow 将为您提供当前活动的顶级窗口,并 GetFocus 具有输入焦点的窗口:
没有办法从 Win32 API 获得焦点历史列表 - 这是一个非常小众的信息!- 但您可以在后台线程上运行一个进程,该线程定期迭代 EnumWindows 的结果,将句柄与 GetActiveWindow 进行比较,并随时间存储窗口和焦点状态的日志。这样,您就可以随时查询您自己的日志,而无需额外开销。
在 .NET 之前的日子里,我曾经在 Visual Basic 中做过很多相同的事情,但在任何其他可以访问 Win32 API 的环境中都应该完全有可能。
于 2012-07-20T16:31:30.203 回答