我能够使用类似于SonOfGrab Example的代码来捕获可见的NSWindow
但是如何捕获隐藏的NSWindow呢?或者,向用户隐藏NSWindow但仍然显示在de Windowserver中的方法是什么?
提前感谢!
发布于 2011-12-28 23:46:49
捕获屏幕上看不到的NSWindow的内容是不可能的。当窗口最小化/隐藏/等等时,视觉表示将被删除以节省内存。
(不确定这到底是如何管理的,如果您对窗口系统有更深入的了解,请随时加入。我是在尝试用CamTwist和BoinxTV捕获窗口时才知道这一点的。)
发布于 2013-12-04 19:35:47
你可以通过以下方式来完成:
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;
}https://stackoverflow.com/questions/7687538
复制相似问题