我基本上试图解决这个问题,因为我想将我的iMac用作我的macbook air的外接显示器。我也想将iMac键盘用于我的macbook air但是出于某种原因,Apple决定一旦按住Command F2激活目标显示模式(意味着它现在是外接显示器),键盘与iMac配对就不能了与iMac不一致。
为了解决这个问题,我想我最初只需将键盘与macbook air配对(留下没有键盘的iMac)并创建一个Applescript宏,模拟键盘按下并按住Command F2五秒钟,无需使用去买另一个Apple键盘。
到目前为止,这是我所拥有的,但它不起作用。它告诉我F2不对。我很确定F2的密钥代码是120。
tell application "System Events"
key down Command
key down F2
delay 5
key up Command
key up F2
end tell
有谁知道我怎么做到这一点?
答案 0 :(得分:3)
OS X 10.9.1的观察结果:
您发送F2
的方式存在问题(您需要使用(key code 120)
而非120
),但更大的问题是 {{1只能使用修饰符键按预期工作。
虽然可以发送非修改键(使用key up/down
语法),但向上/向下方面被忽略,同时(key code <n>)
和key down (key code <n>)
语句与key up (key code <n>)
有效相同(即发送key code <n>
事件之后紧跟Key Down
事件。
有一个建议的解决方法here,基于重复按顺序发送击键 - 值得一试,但从技术角度来看,这与保持按键[组合] 按下,所以我不确定它是否会起作用。
根据您的情况(并将Key Up
替换为key down
),我们得到:
key code
正如我所说:这可能行不通;还要注意循环是“紧”的,这意味着它会使你的机器非常繁忙(如果重复发送密钥,但不一定尽可能快,你可以插入一个短tell application "System Events"
set now to the seconds of the (current date)
set later to now + 5
if later > 60 then set later to later - 60
key down command
# Workaround: send F2 repeatedly.
repeat while the seconds of the (current date) is not later
key code 120
end repeat
key up command
end tell
)。
一些可选的背景信息:
delay
和key up
命令虽然也需要key down
上下文,但不会在应用程序字典System Events
中公开(仅System Events.sdef
和列出key code
- 这可能表明Apple没有正式支持它们。keystroke
key down
时,会发送额外的“a”按键1}}说明符。(keycode <n>)
答案 1 :(得分:1)
我已经启动了一个类似的项目,即监控iMac并自动触发目标显示模式,并在连接Macbook时关闭蓝牙。您可以从https://github.com/duanefields/VirtualKVM下载。