我使用雷電電纜將MBA附加到iMac。在iMac上按CMD + F2可以使目標顯示模式使用iMac作爲MBA的顯示屏。有沒有人有信息如何以編程方式觸發該事件?如何以編程方式輸入目標顯示模式?
我的第一種方法是發送CGEventPost
到kCGHIDEventTap
CGEventRef f2CommandDown = CGEventCreateKeyboardEvent(src, (CGKeyCode)120, YES);
CGEventSetFlags(f2CommandDown, kCGEventFlagMaskCommand);
CGEventRef f2CommandUp = CGEventCreateKeyboardEvent(src, (CGKeyCode)120, NO);
CGEventPost(kCGHIDEventTap, f2CommandDown);
CGEventPost(kCGHIDEventTap, f2CommandUp);
這是行不通的。它所做的只是一個錯誤「嘟嘟」。 (也嘗試以root用戶身份運行)。我認爲,kCGHIDEventTap
只是錯誤的目標,CMD + F2可能生活在更高級別的操作系統(又名「某處」)。
運行某些按鍵事件捕獲代碼不會顯示CMD + F2的任何內容。
有沒有人有提示?提前致謝!
我會打賭一美元以上的按鍵是永遠不會到窗口服務器,所以是的,'kCGHIDEventTap'太遲了。您需要回顧一下[IOKit](http://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Intro/AH_Intro.html%23/)。我認爲[IOHIDManager](http://developer.apple.com/library/mac/#documentation/IOKit/Reference/IOHIDManager_header_reference/Reference/reference。html)將允許你對這些按鍵進行通知,但是如果你可以在不創建內核擴展的情況下僞造它們,我會感到驚訝。 – 2013-02-21 19:34:32
另請參見:http://www.cocoabuilder.com/archive/cocoa/166322-eject-key-code.html – 2013-03-08 21:07:44