【发布时间】:2023-03-24 03:23:01
【问题描述】:
我已使用 Thunderbolt 电缆将 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。我认为IOHIDManager 将允许您通知这些按键,但如果您可以在不创建内核扩展的情况下伪造它们,我会感到惊讶。
标签: objective-c cocoa osx-mountain-lion