我使用雷电电缆将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