如何在屏幕上的特定点找到窗口以进行屏幕截图/屏幕录制?
我正在寻找一种方法来完成相当于 WindowFromPoint 和 GetWindowRect 在 Carbon/Cocoa 和 X11 中所做的事情。
WindowFromPoint - http://msdn.microsoft.com/ en-us/library/ms633558%28VS.85%29.aspx GetWindowRect - http://msdn.microsoft.com/ en-us/library/ms633519%28VS.85%29.aspx
I'm looking for a way to do what the equivalent of WindowFromPoint and GetWindowRect do, in Carbon/Cocoa and X11.
WindowFromPoint - http://msdn.microsoft.com/en-us/library/ms633558%28VS.85%29.aspx
GetWindowRect - http://msdn.microsoft.com/en-us/library/ms633519%28VS.85%29.aspx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 石英窗服务。
肯定使用 Quartz Window Services。
顺便说一句,它的功能之一是您可以单独捕获一个窗口,而窗口前面或后面没有任何东西。执行此操作时,您不需要获取其矩形。
使用 CGImageDestination。
这部分我不确定。 有关此事的示例代码(顾名思义,它使用用于实际捕获的 OpenGL)使用仅限 32 位的 QuickTime C API,而不是兼容 64 位的 QuickTime Kit 来编写影片。
Use Quartz Window Services.
Definitely use Quartz Window Services.
Incidentally, one of its features is that you can capture a window in isolation, without anything that may be in front of it or behind it. You don't need to get its rectangle when doing this.
Use CGImageDestination.
That part I'm not sure about. The sample code on the matter (which, as its name says, uses OpenGL for the actual capturing) uses the 32-bit-only QuickTime C API, not the 64-bit-compatible QuickTime Kit, to write the movie.
要回答此问题的 X11 部分:您可以使用 XQueryPointer的 child_return 具有与 WindowFromPont 类似的功能。 XGetGeometry 应该为您提供 GetWindowRect 信息。
To answer the X11 portion of this question: You can use XQueryPointer's child_return for similar functionality to WindowFromPont. XGetGeometry should get you the GetWindowRect information.