#import #import #import // https://github.com/codebytere/node-mac-permissions/blob/main/permissions.mm extern "C" bool InputMonitoringAuthStatus(bool prompt) { if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_15) { IOHIDAccessType theType = IOHIDCheckAccess(kIOHIDRequestTypeListenEvent); NSLog(@"IOHIDCheckAccess = %d, kIOHIDAccessTypeGranted = %d", theType, kIOHIDAccessTypeGranted); switch (theType) { case kIOHIDAccessTypeGranted: return true; break; case kIOHIDAccessTypeDenied: { if (prompt) { NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"; [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]]; } break; } case kIOHIDAccessTypeUnknown: { if (prompt) { bool result = IOHIDRequestAccess(kIOHIDRequestTypeListenEvent); NSLog(@"IOHIDRequestAccess result = %d", result); } break; } default: break; } } else { return true; } return false; }