我正在尝试制作一个屏幕转换应用程序,它转换单个应用程序窗口而不是整个屏幕。首先,我尝试使用 Xcode 在我的 Mac 上对单个应用程序进行简单的屏幕截图。
到目前为止,我正在尝试使用 CGWindowListCreateImage
但我遇到了问题。
编辑
所以这里有一个小例子,说明我如何设法获得 WindowID。之后使用它截取屏幕截图非常简单。
首先为事件添加一个全局监视器,更具体地说是 NSMouseEvents。我用鼠标向下。窗口信息存储在鼠标事件中。
CGWindowID windowID = (CGWindowID)[event windowNumber];
然后,您可以使用下面的代码截取应用程序的屏幕截图,没有阴影等。
CGImageRef image = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, self.WindowID, kCGWindowImageBoundsIgnoreFraming);
如果您需要更多,请告诉我。
最佳答案
所以这里有一个小例子,说明我如何设法获得 WindowID。之后使用它截取屏幕截图非常简单。首先为事件添加一个全局监视器,更具体地说是 NSMouseEvents。我用鼠标向下。窗口信息存储在鼠标事件中。
CGWindowID windowID = (CGWindowID)[event windowNumber];
然后,您可以使用下面的代码截取应用程序的屏幕截图,没有阴影等。
CGImageRef image = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, self.WindowID, kCGWindowImageBoundsIgnoreFraming);
如果您需要更多,请告诉我。
关于macos - 在 Mac 上截取特定应用程序窗口的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21947646/