我得到了list all windows(包括全屏窗口)的代码:
#!/usr/bin/python
# Prints list of all windows.
import Quartz
for window in Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListOptionOnScreenOnly & Quartz.kCGWindowListExcludeDesktopElements, Quartz.kCGNullWindowID):
print("%s - %s (PID: %d, WID: %d, Pos: %dx%d, Size: %dx%d)"
% (
window['kCGWindowOwnerName'],
window.get('kCGWindowName', u'(empty)').encode('ascii','ignore'),
window['kCGWindowOwnerPID'],
window['kCGWindowNumber'],
window['kCGWindowBounds']['X'],
window['kCGWindowBounds']['Y'],
window['kCGWindowBounds']['Width'],
window['kCGWindowBounds']['Height'],
))
以下是输出示例:
^{pr2}$现在我想从当前工作区获取特定窗口的可视内容(例如图像)。我可以使用CGWindowListCreateImage
(如图here),但窗口在当前工作区中不可见,因为它处于全屏模式,其次,此函数从所有窗口返回组合图像(因此,如果窗口位于另一个窗口之后,它将无法工作)。在
有没有更相关的功能,我可以使用它来根据窗口ID获取特定窗口的图像/屏幕截图,不管它的位置(从任何工作区/桌面)以及它是显示还是隐藏的?在
目前没有回答
相关问题 更多 >
编程相关推荐