美文网首页
macOS 10.15请求全局鼠标监听授权

macOS 10.15请求全局鼠标监听授权

作者: 陈清平 | 来源:发表于2019-08-20 17:45 被阅读0次

    1.背景

    新的macOS10.15系统在监听全局鼠标、键盘事件的时候会弹出授权提示,

    例如使用了CGEventTapCreate就会弹出监听输入授权提示 Screenshot2019_08_20_171323.jpg

    2.主动授权

    要主动授权就先要查询输入监听的授权状态,如果已授权则可以监听,没有授权过则进行访问授权,已拒绝可以弹出安全隐私界面要求用户授权。

    #import <IOKit/hidsystem/IOHIDLib.h>
    
    if(@available(macos 10.15, *))
    {
        IOHIDAccessType theType = IOHIDCheckAccess(kIOHIDRequestTypeListenEvent);
        NSLog(@"IOHIDCheckAccess = %d", theType);
        switch (theType)
        {
            case kIOHIDAccessTypeGranted:
                //同意
                break;
            case kIOHIDAccessTypeDenied:
            {
                //拒绝
                NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent";
                [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
                break;
            }
            case kIOHIDAccessTypeUnknown:
            {
                //未弹过提示框
                bool result = IOHIDRequestAccess(kIOHIDRequestTypeListenEvent);
                NSLog(@"IOHIDRequestAccess result = %d", result);
                break;
            }
            default:
                break;
        }
    }
    

    重置输入监听授权状态

    tccutil reset ListenEvent
    

    相关文章

      网友评论

          本文标题:macOS 10.15请求全局鼠标监听授权

          本文链接:https://www.haomeiwen.com/subject/oonpsctx.html