我一直在寻找和试验近四个小时,所以我会直接问:
如何正确使用Authorization Services API向用户显示系统级授权窗口,与您在“系统偏好设置”中单击锁定图标时看到的窗口相同?
据我所知,如果您想以编程方式执行此操作,则无法使用Cocoa,如果您的目标是调用通常需要通过sudo
调用的可执行文件(在我的case,/usr/bin/pmset
)你没有划桨就上了一条小溪。
我挑战你,我恳求你:拜托,赐教。
谢谢。 :)
答案 0 :(得分:3)
显然你应该做真正的错误处理等等,但这里有一个让你入门的例子。
AuthorizationRef auth = NULL;
OSStatus err;
err = AuthorizationCreate(NULL,
NULL,
kAuthorizationFlagExtendRights|kAuthorizationFlagInteractionAllowed,
&auth);
if( err != errAuthorizationSuccess ) {
fprintf(stderr, "oops: %ld\n", (long int)err);
exit(-1);
}
char *opts[] = { "some", "parameters", "to", "pm", NULL };
err = AuthorizationExecuteWithPrivileges(
auth,
"/usr/bin/pmset",
kAuthorizationFlagDefaults,
opts,
NULL);
AuthorizationFree(auth, kAuthorizationFlagDefaults);
if( err != errAuthorizationSuccess ) {
fprintf(stderr, "oops: %ld\n", (long int)err);
exit(-1);
}
答案 1 :(得分:2)