Cocoa 程序获得系统授权(二)
在以前的文章中,我就曾经介绍过在Mac程序开发中怎么获得系统的授权。在cocoa程序中获得系统授权
利用第二种方法可以很快的得到系统的授权,代码很简单,但是每次执行就得重新获得授权。对于某些程序来说很不方便。
由于之前没有找到第一种和第三种的具体应用 demo ,到后面也没怎么测试过。
之前计划的程序就此太监于此了。
昨天在找代码的时候,无意中找到了 BLAuthentication,这个用了第三种方法来获得系统授权的具体代码。
利用别人写好的这个类,能输入一次密码就能利用多次,时间能持续几分钟。
下面用ls命令来测试一下。因为 ls 不能访问 /.Spotlight-V100 这个目录,所以就用这个来获得授权列出该文件夹下的列表。
#import <Foundation/Foundation.h>
#import "BLAuthentication.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
- (void) runApp {
[[BLAuthentication sharedInstance] executeCommandSynced:@"/bin/ls" withArgs:[NSArray arrayWithObjects:@"/.Spotlight-V100", nil]];
}
}
}
这个类有以下方法:
- executeCommand 适合于没有返回值的命令,只需要执行完就不用看返回内容。
- executeCommandSynced 适用于需要拿到执行命令后的返回内容。
- isAuthenticated 判断当前命令是不是已经拿到授权了。
- deauthenticate 注销当前拿到的系统授权。
- getPID 拿到某个进程的PID。
- killProcess 终止某个进程。
下载地址:
【声明】本文 Cocoa 程序获得系统授权(二) 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2014/12/get-root-privileges-from-cocoa-application/ , 转载请保留本声明!
Cocoa