2016-07-13 6 views
5

मैं सिस्टम सुरक्षा सेटिंग्स को बदलने के दौरान प्रकट होने वाले ओएसएक्स व्यवस्थापक पासवर्ड प्रॉम्प्ट का पता लगाने (प्रोग्रामेटिक रूप से) करने का प्रयास कर रहा हूं। आदर्श रूप से समाधान सी ++ या उद्देश्य-सी के लिए काम करेंगे। मैंने विभिन्न NSDistributedNotificationCenters को देखा है जो ओएस नोटिफिकेशन प्रदान करते हैं, लेकिन उनमें से कोई भी पासवर्ड प्रॉम्प्ट के लिए विशिष्ट प्रतीत नहीं होता है। मैंने ओएस प्रदान कर सकते हैं कि सभी अधिसूचनाओं के लिए पंजीकरण करने का प्रयास किया है, लेकिन सिस्टम अधिसूचना विंडो में प्रवेश करने के बाद इन अधिसूचनाओं को रोकने के लिए प्रतीत होता है।ओएसएक्स व्यवस्थापक पासवर्ड प्रॉम्प्ट का पता लगाने के लिए कैसे?

मैंने SFAuthorizationPlugin अवधारणा में भी देखा है, लेकिन ऐसा लगता है कि यह ठंडा बूट से सिस्टम में लॉग इन करने के लिए और अधिक है।

मुझे पता है कि यह संभव है, क्योंकि मैंने देखा है कि अन्य एप्लिकेशन पासवर्ड प्रॉम्प्ट का पता लगाते हैं और जब भी दिखाई देते हैं तो स्क्रीन पर कुछ प्रदर्शित करते हैं।

तो मैं प्रोग्रामेटिक रूप से ओएसएक्स व्यवस्थापक पासवर्ड प्रॉम्प्ट का पता कैसे लगा सकता हूं?

उत्तर

3

आप वर्कस्पेस से सुरक्षा एजेंट नोटिफिकेशन सुन सकते हैं।

तो जैसे आवेदन सक्रियण सूचनाएं की सदस्यता लें:

@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

संबंधित मुद्दे