在沙盒应用程序中运行外部程序

时间:2012-11-01 22:43:26

标签: objective-c macos

如何使用终端中的w命令创建应用程序以显示登录到计算机的所有用户?

我制作了测试版应用但​​是它正在禁用沙盒[它显示了用户]但是它没有启用沙盒功能[这是没有用户登录]。代码是:

NSTask *task = [NSTask new];
[task setLaunchPath:@"/usr/bin/w"];

NSPipe *output = [NSPipe pipe];
[task setStandardInput:[NSPipe pipe]];
[task setStandardOutput: output];

[task launch];
NSFileHandle * read = [output fileHandleForReading];
NSData * dataRead = [read readDataToEndOfFile];
NSString *result = [[NSString alloc] initWithData:dataRead encoding:NSUTF8StringEncoding];
[TView setString: result];

2 个答案:

答案 0 :(得分:0)

您尝试运行的实用程序(w)正在尝试访问沙箱外部的文件。简而言之,从沙盒应用程序启动时它将无法工作。

答案 1 :(得分:0)

您可以尝试使用FreeBSD w命令中的source在您的应用内部实现其功能是否有效(不知道是否会发生) 。但至少你不会遇到运行外部程序的问题......

但是,如果它需要访问非标准区域,那么它将无法在沙盒应用程序中运行。