首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获隐藏的NSWindow

捕获隐藏的NSWindow
EN

Stack Overflow用户
提问于 2011-10-07 20:54:02
回答 2查看 805关注 0票数 1

我能够使用类似于SonOfGrab Example的代码来捕获可见的NSWindow

但是如何捕获隐藏的NSWindow呢?或者,向用户隐藏NSWindow但仍然显示在de Windowserver中的方法是什么?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-28 23:46:49

捕获屏幕上看不到的NSWindow的内容是不可能的。当窗口最小化/隐藏/等等时,视觉表示将被删除以节省内存。

(不确定这到底是如何管理的,如果您对窗口系统有更深入的了解,请随时加入。我是在尝试用CamTwist和BoinxTV捕获窗口时才知道这一点的。)

票数 2
EN

Stack Overflow用户

发布于 2013-12-04 19:35:47

你可以通过以下方式来完成:

代码语言:javascript
复制
NSImage *img = [[NSImage alloc] initWithCGImage:[window windowImageShot] size:window.frame.size];

NSWindow的类别:

代码语言:javascript
复制
- (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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7687538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档