是否可以捕获NSCursor窗口的图像?这是我的代码
获取光标窗口的原始值
let level = CGWindowLevelForKey(.CursorWindowLevelKey).int
我有一个方法,使用CGWindowListCopyWindowInfo迭代屏幕上的所有窗口,并返回由" Window Server"
拥有的Cursor窗口的窗口号let number = self.windowNumber(level, screen: screen, options: nil) //returns proper window number
let frame = screen.frame //screen is the current NSScreen that the mouse is in.
let cgimage = CGWindowListCreateImage(frame, .OptionIncludingWindow, CGWindowID(number), .Default)!
转换为NSBitmapImageRep
let cursor = NSBitmapImageRep(CGImage: cgimage)
然后将光标的屏幕截图保存到磁盘。
这适用于所有其他窗口,除了光标,它保存一个空白窗口。我尝试过使用一堆不同类型的帧,但没有去。我假设这是因为CGWindowListCreateImage会自动省略光标窗口。有可能阻止它省略吗?也许复制窗口并捕获它?
我尝试过的其他事情
NSCursor.currentCursor().image
获取图片,但由于我的应用是仅限背景的应用,因此我不得不使用NSCursor.currentSystemCursor().image
来永久返回非视网膜图像。NSCursor.currentSystemCursor().image
正在返回并尝试获取视网膜版本......只是无法比较哪个实例被带回来了。