首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F2按住⌘Applescript 5秒钟?

F2按住⌘Applescript 5秒钟?
EN

Stack Overflow用户
提问于 2014-01-31 12:24:11
回答 2查看 4.1K关注 0票数 0

我基本上是想弄明白这一点,因为我想用我的iMac作为macbook air的外部显示器。我也想在我的macbook air上使用iMac键盘然而,由于某些原因,苹果公司决定,一旦你按下并按住F2命令激活目标显示模式(这意味着它现在是一个外部显示器),与iMac配对的键盘无法与iMac配对。

要解决这个问题,我想我可以先把键盘和macbook air配对(让iMac没有键盘),然后创建一个AppleScript宏来模拟键盘按住F2键5秒钟,这样就不需要再去买另一个苹果键盘了。

这是我到目前为止所拥有的,但它不起作用。它告诉我F2是不对的。我很确定F2的关键代码是120。

代码语言:javascript
复制
tell application "System Events"
     key down Command
     key down F2
     delay 5
     key up Command
     key up F2
end tell

有没有人知道我该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2014-02-01 05:20:58

从OS X 10.9.1开始的观察:

您发送F2的方式有一个问题(您需要使用(key code 120),而不仅仅是120),但更大的问题是,key up/down 只能与修饰符键一起按预期工作。

虽然可以发送非修饰符键(使用(key code <n>)语法),但向上/向下方面被忽略,使得key down (key code <n>)key up (key code <n>)语句实际上与代码相同(即,紧跟在<代码>D25事件之后的<>D24事件被发送)。

有一个建议的解决办法here,基于重复发送短序列的击键-它值得一试,但从技术角度来看,它与按住组合键不同,所以我不确定它是否有效。

根据您的情况进行调整(并用key code替换key down ),我们得到:

代码语言:javascript
复制
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 upkey down命令,虽然也需要System Events上下文,但不在System Events.sdef中展示,应用程序的字典(只列出了key codekeystroke )-这可能表明苹果没有正式支持它们。OS X 10.9.1上的
  • (与OS X 10.8不同-不知道更早的版本)有一个奇怪的错误,每当你使用带有确定按键代码值的specifier.
  • Ways的(keycode <n>)时,就会发送额外的"a“按键(从各种SO答案中收集,主要是here):一个交互式使用的免费图形用户界面应用程序-非常方便。
  • 下面的头文件(十六进制格式的代码列表):

/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h

  • List of decimal codes (incomplete)

票数 3
EN

Stack Overflow用户

发布于 2014-06-25 20:30:20

我已经启动了一个类似的项目,即监控iMac并自动触发目标显示模式,并在连接Macbook时关闭蓝牙。你可以从https://github.com/duanefields/VirtualKVM下载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21472368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档