我能捕捉到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