我能捕捉到NSWindow
S使用代码simular到SonOfGrab Example捕捉隐藏NSWindow
但我怎么能捕捉到隐藏NSWindow
这是可见的?或者,如何隐藏用户的NSWindow
,但仍然出现在Windowserver中?
在此先感谢!
我能捕捉到NSWindow
S使用代码simular到SonOfGrab Example捕捉隐藏NSWindow
但我怎么能捕捉到隐藏NSWindow
这是可见的?或者,如何隐藏用户的NSWindow
,但仍然出现在Windowserver中?
在此先感谢!
无法捕获NSWindow的内容,该内容在屏幕上不可见。当一个窗口被最小化/隐藏/无论如何,视觉表示被删除以节省内存。
(不知道这个究竟是如何管理的,随意附和,如果你有窗口系统有更深入的了解。我只是从经验中知道这一点,试图捕捉与CamTwist和BoinxTV窗口。)
你可以做到这一点:
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;
}
+1,这是邪恶的。 kCGWindowListOptionIncludingWindow可以让你截取一个windowID,即使它不在前面。感谢分享! – Tiago