mac_doprivileged.mm 586 B

123456789101112131415161718192021222324
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include "mac_doprivileged.h"
  4. #undef slots
  5. #include <Cocoa/Cocoa.h>
  6. bool macExecutePrivilegedShellCommand(const char *commandAndArgs)
  7. {
  8. char tmp[32768];
  9. snprintf(tmp,sizeof(tmp),"do shell script \"%s\" with administrator privileges\n",commandAndArgs);
  10. tmp[32767] = (char)0;
  11. NSString *scriptApple = [[NSString alloc] initWithUTF8String:tmp];
  12. NSAppleScript *as = [[NSAppleScript alloc] initWithSource:scriptApple];
  13. NSDictionary *err = nil;
  14. [as executeAndReturnError:&err];
  15. [as release];
  16. [scriptApple release];
  17. return (err == nil);
  18. }