2011-10-07 3 views
0

SonOfGrab Example 코드를 사용하여 보이는 NSWindow을 캡처 할 수 있습니다 SonOfGrab Example숨겨진 NSWindow 캡처

그러나 어떻게 숨겨진 NSWindow을 캡처 할 수 있습니까? 또는 NSWindow를 사용자로부터 숨기고 Windowserver에 여전히 나타나는 방법은 무엇입니까?

미리 감사드립니다!

답변

1

화면에 표시되지 않는 NSWindow의 내용을 캡처 할 수 없습니다. 창을 최소화하거나 숨긴 경우 시각적 표현은 메모리를 절약하기 위해 삭제됩니다.

(이것은 관리 방법을 정확하게, 당신은 윈도우 시스템의 깊은 지식을 가지고있는 경우 차임 주시기에 확실하지. 난 단지 CamTwist와 BoinxTV와 창을 캡처하는 노력, 경험이 알고있다.)

0

당신은 그것을 할 수 있습니다 NSWindow 표시에

NSImage *img = [[NSImage alloc] initWithCGImage:[window windowImageShot] size:window.frame.size]; 

카테고리 :

- (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; 
} 
+0

+1을,이 악한입니다. kCGWindowListOptionIncludingWindow를 사용하면 앞에없는 경우에도 windowID의 스크린 샷을 캡처 할 수 있습니다. 공유 해줘서 고마워! – Tiago