[英]Mac OS X: Intercept keyboard layout change
我有個問題。 我的Mac上有兩個鍵盤布局,因為在與不同的人通信時我必須鍵入兩種不同的語言。 我使用鍵盤快捷鍵Cmd+Space
從一種布局(語言)切換到另一種布局。
我想知道在按下Cmd+Space
時是否可以運行自定義腳本? 我知道有一個名為Punto Switcher的應用程序可以做到這一點。
我的想法是更改鍵盤突出顯示級別以指示當前語言。
問題是在哪里可以找到API
來自@Anoop Vaidya的LED亮度指針的整潔指針 - 看起來很有趣!
輸入方法更改時,系統會發送通知。
首先,聲明一個接收通知的函數:
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);
我找到了一個Amit Singh的博客,在那里他給出了無證API的想法,他使用了C,為此,你肯定可以從中找到一些幫助。
試驗光 。
或者您可以嘗試使用以下代碼:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.