gpt4 book ai didi

swift - 在不使用 CGWindowListCreateImage 函数的情况下将桌面捕获为图像

转载 作者:行者123 更新时间:2023-12-04 13:39:42 27 4
gpt4 key购买 nike

我一直在使用 CGWindowListCreateImage多年来一直致力于将桌面捕获为图像。在 Swift 中,我返回一个图像 ( NSImage ),如下所示。

    func makeCGWindowImage(size: CGSize) -> NSImage? {
if let imageRef = CGWindowListCreateImage(CGRect.infinite, .optionAll, kCGNullWindowID, .bestResolution) {
let image = NSImage(cgImage: imageRef, size: size)
return image
}
return nil
}

我需要使用 CGWindowListCreateImage功能以捕获不仅涉及我的应用程序本身而且涉及其他应用程序的桌面区域(文件夹窗口、Safari Web 浏览器窗口...)。问题是,如果我使用上面的窗口图像功能,我会收到有关屏幕录制隐私的警报消息。

enter image description here

使用 CGWindowListCreateImage 最糟糕的部分功能是审阅者拒绝应用程序,因为应用程序不必要地显示了隐私消息。如果我问审阅者屏幕录制隐私是为了什么,他或她说这是为了制作视频,这听起来像 B.S.对我来说。审稿人建议我使用替代方案。我问过,但审稿人没有说这些替代品是什么。那么是否有 CGWindowListCreateImage 的替代品?用于捕获不仅涉及我的应用程序而且还涉及其他窗口的桌面区域的功能。

最佳答案

无论您使用什么方法或 API 调用; MACOS 将要求授予对屏幕录制的访问权限。

然而,这是一次性权限,一旦用户允许访问该应用程序,隐私消息将不会一次又一次地显示。

无法避免隐私消息至少显示一次。

如果您可以详细说明您的问题,这将为您提供更有针对性的答案。

关于swift - 在不使用 CGWindowListCreateImage 函数的情况下将桌面捕获为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59264255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com