gpt4 book ai didi

objective-c - 如何检测 OSX 管理员密码提示?

转载 作者:太空狗 更新时间:2023-10-30 03:53:07 26 4
gpt4 key购买 nike

我正在尝试(以编程方式)检测更改系统安全设置时出现的 OSX 管理员密码提示。理想情况下,解决方案适用于 C++ 或 Objective-C。我看过各种提供操作系统通知的 NSDistributedNotificationCenters,但它们似乎都不是特定于密码提示的。我已尝试注册操作系统可以提供的所有通知,但一旦我进入“系统偏好设置”窗口,这些通知似乎就会停止。

我还研究了 SFAuthorizationPlugin 概念,但它似乎更适合从冷启动登录系统。

我知道这是可能的,因为我已经看到其他应用程序检测到密码提示并在出现时在屏幕上显示一些内容。

那么我如何以编程方式检测 OSX 管理员密码提示?

最佳答案

您可以从工作区监听 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
@end

关于objective-c - 如何检测 OSX 管理员密码提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com