mac开发-10.15检测屏幕录制权限

在Mac OS 10.15及更高版本中,进行屏幕录制需获取权限。本文介绍了如何检测和申请权限,使用CGWindowListCreateImage进行屏幕内容捕获,并讨论了权限设置后可能导致的系统崩溃问题。同时,提供了清除App权限记录的方法,以解决权限获取的循环问题。参考了相关博客文章以深入理解这一主题。
摘要由CSDN通过智能技术生成

在Mac os 10.15之后,屏幕录制权限需要获取才能正确录屏,否则只能录制桌面背景以及自身app的影像。即可以截屏,但截不到其他app的内容。

屏幕录制权限检测

对于Mac os 10.15的屏幕录制权限检测,使用如下方法为最佳:

- (BOOL)canRecordScreen
{
   
    if (@available(macOS 10.15, *)) {
   
        CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
        NSUInteger numberOfWindows = CFArrayGetCount(windowList);
        NSUInteger numberOfWindowsWithName = 0;
        for (int idx = 0; idx < numberOfWindows; idx++) {
   
            NSDictionary *windowInfo = (NSDictionary *)CFArrayGetValueAtIndex(windowList, idx);
            NSString *windowName = windowInfo[(id)kCGWindowName];
            if (windowName) {
   
                numberOfWindowsWithName++;
            } else {
   
                //no kCGWindowName detected -> not enabled
                break; //breaking early, numberOfWindowsWithName not increased
            }

        }
        CFRelease(windowList)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值