我试图(以编程方式)检测更改系统安全设置时出现的OSX管理员密码提示。理想情况下,解决方案适用于C++或Objective。我看过各种提供OS通知的NSDistributedNotificationCenters,但似乎没有一个是特定于密码提示的。我尝试过注册OS可以提供的所有通知,但是一旦我输入了System窗口,这些通知似乎就停止了。
我还研究了SFAuthorizationPlugin的概念,但似乎更多的是从冷引导登录到系统。
我知道这是可能的,因为我已经看到其他应用程序检测密码提示,并在屏幕上显示某些内容。
那么,如何以编程方式检测OSX管理员密码提示呢?
发布于 2016-07-13 16:27:40
您可以从工作区侦听SecurityAgent通知。
订阅应用程序激活通知如下:
@interface notificationHandler: NSObject {}
@end
@implementation notificationHandler
-(id)init
{
[[[NSWorkspace sharedWorkspace] notificationCenter]
addObserver:self
selector :@selector(handleNotification)
name :NSWorkspaceDidActivateApplicationNotification
object :nil];
} // init
-(void)handleNotification:(NSNotification *) notification
{
NSDictionary info = [notification userInfo];
NSString *appName = [[info objectForKey:NSWorkspaceApplicationKey] localizedName];
if ([appName isEqualToString:@"SecurityAgent"]) {
// You have found the administrator password prompt!
}
} // handleNotification
@endhttps://stackoverflow.com/questions/38352149
复制相似问题