2016-07-13 37 views
5

Sistem güvenliği ayarlarını değiştirirken görüntülenen OSX yönetici şifresi istemini (programlı olarak) algılamaya çalışıyorum. İdeal olarak çözümler C++ veya Objective-C için çalışacaktır. Ben OS bildirimleri sağlayan çeşitli NSDistributedNotificationCenters baktım, ama bunların hiçbiri parola istemine özgü gibi görünmüyor. İşletim Sisteminin sağlayabileceği tüm bildirimlere kaydolmayı denedim, ancak Sistem Bildirimleri penceresine girdikten sonra bu bildirimler duracak gibi görünüyor.OSX yönetici şifresi nasıl belirlenir?

Ayrıca, SFAuthorizationPlugin konseptine de baktım, ama daha soğuk bir önyüklemeden sisteme giriş yapmak için daha fazlası gibi görünüyor.

Diğer uygulamaların parola sorgusunu algıladığını ve göründüğünde ekranda bir şey görüntülediğini gördüğümden, mümkün olduğunu biliyorum.

OSX yönetici parolası istemini nasıl programla algılayabilirim?

cevap

3

SecurityAgent bildirimlerini çalışma alanından dinleyebilirsiniz.

şöyle uygulama aktivasyon bildirimlerine abone olun:

@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 
+0

mükemmel olan bu tam olarak ben aradığımı! – JohnDvorak