2013-03-01 6 views
6

मुझे कोई समस्या है। मेरे मैक में दो कीबोर्ड लेआउट हैं क्योंकि मुझे अलग-अलग लोगों के साथ संवाद करते समय दो अलग-अलग भाषाओं में टाइप करना होगा। मैं एक लेआउट (भाषा) से दूसरे में स्विच करने के लिए कीबोर्ड शॉर्टकट Cmd+Space का उपयोग करता हूं।मैक ओएस एक्स: इंटरसेप्ट कीबोर्ड लेआउट बदलें

मुझे आश्चर्य है कि Cmd+Space दबाए जाने पर मैं कस्टम स्क्रिप्ट चला सकता हूं? मुझे पता है कि Punto Switcher नामक एक ऐप है जो ऐसा कर सकता है।

मेरा विचार वर्तमान भाषा को इंगित करने के लिए कीबोर्ड हाइलाइटिंग स्तर को बदलना है।

  • तेज = जर्मन (या रूस या जो कुछ भी)
  • मंद = अंग्रेजी

सवाल जहां एपीआई को मिल रहा है कि कर सकते हैं मैक ओएस एक्स में

  1. अवरोधन कीबोर्ड लेआउट
  2. कीबोर्ड हाइलाइट की चमक बदलें

enter image description here

+0

फैंसी चित्र !! – Klaas

उत्तर

1

मैं अमित सिंह, जहां वह विचार प्रदान किया के रूप में गैर-दस्तावेजी एपीआई में उन्होंने सी इस्तेमाल किया, इस के लिए, आप निश्चित रूप से इस से मदद के कुछ प्रकार प्राप्त कर सकते हैं की एक ब्लॉग मिला।

Experimenting With Light

या आप इन कोड के साथ की कोशिश कर सकते हैं:

UInt64 lightInsideGetLEDBrightness(){ 
    kern_return_t kr = 0; 
    IOItemCount scalarInputCount = 1; 
    IOItemCount scalarOutputCount = 1; 
    UInt64  in_unknown = 0, out_brightness; 
    kr = IOConnectCallScalarMethod(dataPort, kGetLEDBrightnessID, &in_unknown, scalarInputCount, &out_brightness, &scalarOutputCount); 
    return out_brightness; 
} 
5

@Anoop वैद्य से एलईडी चमक सामान रूप से ऐसे बढ़िया सूचक - दिलचस्प लग रहा है!

इनपुट विधि बदलते समय सिस्टम अधिसूचना भेजता है।

पहले, सूचना प्राप्त करने के एक समारोह की घोषणा:

void theKeyboardChanged(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) { 
    NSLog(@"Keyboard/input method changed."); 
} 

फिर परिवर्तन सूचना के लिए पंजीकरण:

CFNotificationCenterAddObserver(CFNotificationCenterGetDistributedCenter(), 
    myContextInfo, theKeyboardChanged, 
    kTISNotifySelectedKeyboardInputSourceChanged, NULL, 
    CFNotificationSuspensionBehaviorDeliverImmediately);