如何以编程方式进入目标显示模式?

Bor*_*ris 8 cocoa objective-c osx-mountain-lion

我使用雷电电缆将MBA连接到iMac.按iMac上的CMD + F2可使目标显示模式使用iMac作为MBA的显示.有没有人有关于如何以编程方式触发该事件的信息?

我的第一个方法是发送CGEventPostkCGHIDEventTap

CGEventRef f2CommandDown = CGEventCreateKeyboardEvent(src, (CGKeyCode)120, YES);
CGEventSetFlags(f2CommandDown, kCGEventFlagMaskCommand);
CGEventRef f2CommandUp = CGEventCreateKeyboardEvent(src, (CGKeyCode)120, NO);
CGEventPost(kCGHIDEventTap, f2CommandDown);
CGEventPost(kCGHIDEventTap, f2CommandUp);
Run Code Online (Sandbox Code Playgroud)

这不起作用.它只是一个错误"嘟嘟".(尝试以root用户身份运行).我认为,kCGHIDEventTap只是错误的目标,CMD + F2可能存在于操作系统的更高级别(又称"某处")

运行一些键事件捕获代码不会显示CMD + F2的任何内容.

有人有提示吗?提前致谢!

Dua*_*lds 5

我已经启动了一个执行此操作的项目,即监视 iMac 并在连接 Macbook 时自动触发目标显示模式并关闭蓝牙。您可以从https://github.com/duanefields/VirtualKVM下载。我正在使用 AppleScript 来触发按键。