Skip to content

Instantly share code, notes, and snippets.

@iccir
Created October 13, 2019 09:21
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iccir/c1da6e537718b99b0c14ef76765aec45 to your computer and use it in GitHub Desktop.
Save iccir/c1da6e537718b99b0c14ef76765aec45 to your computer and use it in GitHub Desktop.
Open "Screen Recording" preferences on macOS Catalina
static void sOpenScreenRecordingPreferences()
{
CFDataRef passThruData = CFBridgingRetain([@"Privacy_ScreenCapture" dataUsingEncoding:NSUTF8StringEncoding]);
CFArrayRef itemURLs = CFBridgingRetain(@[ [NSURL fileURLWithPath:@"/System/Library/PreferencePanes/Security.prefPane"] ]);
OSStatus err = noErr;
AEDesc passThruDesc = {0};
BOOL needsDispose = NO;
if ((err == noErr) && passThruData) {
err = AECreateDesc('ptru', CFDataGetBytePtr(passThruData), CFDataGetLength(passThruData), &passThruDesc);
needsDispose = (err == noErr);
}
if (err == noErr) {
LSLaunchURLSpec launchSpec = { NULL, itemURLs, &passThruDesc, kLSLaunchDontAddToRecents|kLSLaunchAsync , NULL };
LSOpenFromURLSpec(&launchSpec, NULL);
}
if (needsDispose) AEDisposeDesc(&passThruDesc);
if (passThruData) CFRelease(passThruData);
if (itemURLs) CFRelease(itemURLs);
}
@iccir
Copy link
Author

iccir commented Oct 13, 2019

Even easier, use a URL of: x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture

From Terminal:

open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment