Macos 捕获光标窗口的图像

Macos 捕获光标窗口的图像,macos,cocoa,nscursor,Macos,Cocoa,Nscursor,是否可以捕获NSCursor窗口的图像?这是我的密码 获取光标窗口的原始值 let level = CGWindowLevelForKey(.CursorWindowLevelKey).int 我有一个方法,使用CGWindowListCopyWindowInfo遍历屏幕上的所有窗口,并返回“窗口服务器”拥有的光标窗口的窗口号 转换为NSBitmapImageRep let cursor = NSBitmapImageRep(CGImage: cgimage) 然后将光标的屏幕截图保存到磁盘

是否可以捕获NSCursor窗口的图像?这是我的密码

获取光标窗口的原始值

let level = CGWindowLevelForKey(.CursorWindowLevelKey).int
我有一个方法,使用CGWindowListCopyWindowInfo遍历屏幕上的所有窗口,并返回“窗口服务器”拥有的光标窗口的窗口号

转换为NSBitmapImageRep

let cursor = NSBitmapImageRep(CGImage: cgimage)
然后将光标的屏幕截图保存到磁盘中

这对所有其他窗口都非常有效,除了保存空白窗口的光标。我也尝试过使用不同类型的框架,但没有成功。我认为这是因为CGWindowListCreateImage自动忽略了光标窗口。有没有可能阻止它忽略这一点?也许复制窗口并捕获它

我尝试过的其他事情

  • 使用
    NSCursor.currentCursor().image
    获取图像,但由于我的应用程序是纯背景应用程序,因此我不得不使用
    NSCursor.currentSystemCursor().image
    ,它始终返回非视网膜图像
  • 找出哪个
    NSCursor.currentSystemCursor().image
    正在返回并试图获取视网膜版本。。。只是无法真正比较带回的实例
    “是否有可能捕捉到NSCursor窗口的图像”显然是这样,因为ScreenFlow做到了这一点。但我不知道怎么做。:)@是的,这其实相当简单。但是作为一个单一的图像屏幕抓取,石英显示服务不允许这样做,所以光标必须在顶部合成。在处理视网膜和非视网膜的问题时,这是非常棘手的。也许这就是为什么苹果的抓取应用程序不显示光标?我不知道这种区别那SnapzProX呢?它正确地显示了光标…这是因为SnapzProX使用的currentSystemCursor没有捕获光标的视网膜版本。所以它看起来是像素化的。这是我第一次尝试的(在我的问题中列出了#1)。再次令人着迷。在我看来,这只是一个功能缺失的部分。显然,向苹果公司提交缺陷报告/增强请求是正确的。谢谢你的解释!“是否有可能捕捉到NSCursor窗口的图像”显然是这样,因为ScreenFlow做到了这一点。但我不知道怎么做。:)@是的,这其实相当简单。但是作为一个单一的图像屏幕抓取,石英显示服务不允许这样做,所以光标必须在顶部合成。在处理视网膜和非视网膜的问题时,这是非常棘手的。也许这就是为什么苹果的抓取应用程序不显示光标?我不知道这种区别那SnapzProX呢?它正确地显示了光标…这是因为SnapzProX使用的currentSystemCursor没有捕获光标的视网膜版本。所以它看起来是像素化的。这是我第一次尝试的(在我的问题中列出了#1)。再次令人着迷。在我看来,这只是一个功能缺失的部分。显然,向苹果公司提交缺陷报告/增强请求是正确的。谢谢你的解释!
    let cursor = NSBitmapImageRep(CGImage: cgimage)