2016-07-13 3 views
5

システムセキュリティ設定を変更するときに表示されるOSX管理者パスワードのプロンプトを(プログラムによって)検出しようとしています。理想的には、このソリューションはC++またはObjective-Cで動作します。 OS通知を提供するさまざまなNSDistributedNotificationCentersを見てきましたが、パスワードプロンプトに固有のものはありません。 OSが提供できるすべての通知を登録しようとしましたが、システム環境設定ウィンドウに入ったらこれらの通知は止まるようです。どのようにOSXの管理者パスワードのプロンプトを検出するには?

私もSFAuthorizationPluginという概念を検討しましたが、それはコールドブートからシステムにログインする方が多いようです。

他のアプリケーションがパスワードプロンプトを検出し、表示されるときはいつでも画面上に何かを表示するのを見たことがあります。

OSX管理者パスワードのプロンプトをプログラムで検出するにはどうすればよいですか?

答えて

3

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

パーフェクト、これは私が探していたまさにです! – JohnDvorak

関連する問題