【发布时间】:2014-02-22 00:03:57
【问题描述】:
我正在尝试制作一个屏幕投射应用程序,它投射单个应用程序窗口而不是整个屏幕。首先,我尝试使用 Xcode 在我的 Mac 上对单个应用程序进行简单的截图。
到目前为止,我正在尝试使用CGWindowListCreateImage,但我遇到了问题。
编辑 所以这里有一个小例子,说明我如何设法获得 WindowID。之后使用它截取屏幕截图非常简单。 首先为事件添加一个全局监视器,更具体地说是 NSMouseEvents。我用鼠标向下。窗口信息存储在鼠标事件中。
CGWindowID windowID = (CGWindowID)[event windowNumber];
然后,您可以使用下面的代码截取应用程序的屏幕截图,没有阴影等。
CGImageRef image = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, self.WindowID, kCGWindowImageBoundsIgnoreFraming);
如果您需要更多,请告诉我。
【问题讨论】:
-
您遇到了什么问题?
-
其实我修好了!我将在下面发布代码。
标签: macos quartz-graphics