Cocoa 程序获得系统授权(二)

2014年12月24日 分类: Cocoa, 编程 (352 个脚步)

在以前的文章中,我就曾经介绍过在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 程序获得系统授权(二) 【声明】本文 Cocoa 程序获得系统授权(二) 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2014/12/get-root-privileges-from-cocoa-application/ , 转载请保留本声明!

标签: , , ,
6 条评论
你必须要启用 Javascript