我能够使用与SonOfGrab Example
类似的代码捕获可见的NSWindow
但是如何捕获隐藏的NSWindow
?或者从用户隐藏NSWindow
但仍然出现在de Windowserver中的方法是什么?
提前致谢!
答案 0 :(得分:2)
无法捕获屏幕上看不到的NSWindow的内容。当窗口最小化/隐藏/无论什么时,可视表示被删除以节省内存。
(不确定如何管理这些内容,如果您对窗口系统有更深入的了解,请随时加入。我只是从经验中了解到这一点,尝试使用CamTwist和BoinxTV捕获窗口。)
答案 1 :(得分:0)
您可以通过以下方式完成:
NSImage *img = [[NSImage alloc] initWithCGImage:[window windowImageShot] size:window.frame.size];
类别到NSWindow:
- (CGImageRef)windowImageShot
{
CGWindowID windowID = (CGWindowID)[self windowNumber];
CGWindowImageOption imageOptions = kCGWindowImageBoundsIgnoreFraming | kCGWindowImageNominalResolution;
CGWindowListOption singleWindowListOptions = kCGWindowListOptionIncludingWindow;
CGRect imageBounds = CGRectNull;
CGImageRef windowImage = CGWindowListCreateImage(imageBounds, singleWindowListOptions, windowID, imageOptions);
return windowImage;
}