Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Applescript按住⌘;5秒钟?_Applescript - Fatal编程技术网

Applescript按住⌘;5秒钟?

Applescript按住⌘;5秒钟?,applescript,Applescript,我基本上是想弄明白这一点,因为我想用我的iMac作为macbook air的外部显示器。我还想为我的macbook air使用iMac键盘,但出于某种原因,苹果公司决定,一旦您按住命令F2以激活目标显示模式(这意味着它现在是一个外部显示器),与iMac配对的键盘就不能与iMac解除配对 为了解决这个问题,我想我应该先将键盘与macbook air配对(让iMac没有键盘),然后创建一个Applescript宏,模拟键盘按住F2命令5秒钟,这样就不需要再购买一个苹果键盘了 这是我到目前为止得到的,

我基本上是想弄明白这一点,因为我想用我的iMac作为macbook air的外部显示器。我还想为我的macbook air使用iMac键盘,但出于某种原因,苹果公司决定,一旦您按住命令F2以激活目标显示模式(这意味着它现在是一个外部显示器),与iMac配对的键盘就不能与iMac解除配对

为了解决这个问题,我想我应该先将键盘与macbook air配对(让iMac没有键盘),然后创建一个Applescript宏,模拟键盘按住F2命令5秒钟,这样就不需要再购买一个苹果键盘了

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

tell application "System Events"
     key down Command
     key down F2
     delay 5
     key up Command
     key up F2
end tell

有人知道我如何做到这一点吗?

从OS X 10.9.1开始观察:

发送
F2
的方式存在问题(您需要使用
(键代码120)
而不仅仅是
120
),但更大的问题是
键向上/向下
仅与修改键一样有效。

虽然可以发送非修改键(使用
(键代码)
语法),但向上/向下方面被忽略,使得
向下键(键代码)
向上键(键代码)
语句有效地与
键代码相同(即,发送一个
按键向下
事件,紧接着一个
按键向上
事件)

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

根据您的情况(并将
键关闭
替换为
键代码
),我们得到:

告诉应用程序“系统事件”
现在设置为(当前日期)的秒数
稍后设置为现在+5
如果later>60,则将later设置为later-60
按下键命令
#解决方法:重复发送F2。
当(当前日期)的秒数不迟时重复此操作
钥匙代码120
结束重复
向上键命令
结束语
正如我所说的:这可能不起作用;还要注意,循环是“紧密的”,这意味着它将使您的机器非常繁忙(如果反复发送按键,但不一定尽可能快是一个选项,您可以插入一个短的
延迟

一些可选的背景信息

  • 向上键
    向下键
    命令虽然也需要
    系统事件
    上下文,但在
    系统事件.sdef
    、应用程序字典(仅列出了
    键代码
    击键
    )中没有公开,这可能表明苹果没有正式支持它们
  • 在OS X 10.9.1上(与OS X 10.8不同-不知道早期版本),存在一个奇怪的错误,即每当您使用
    键下
    (keycode)
    说明符时,会发送一个额外的“a”键
  • 确定关键代码值的方法(主要从各种其他SO答案中收集):
    • ,一个免费的GUI应用程序,用于交互式使用-非常方便
    • 系统上的以下头文件(十六进制格式的代码列表):
      /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
    • :

从OS X 10.9.1开始的观察结果:

发送
F2
的方式存在问题(您需要使用
(键代码120)
而不仅仅是
120
),但更大的问题是
键向上/向下
仅与修改键一样有效。

虽然可以发送非修改键(使用
(键代码)
语法),但向上/向下方面被忽略,使得
向下键(键代码)
向上键(键代码)
语句有效地与
键代码相同(即,发送一个
按键向下
事件,紧接着一个
按键向上
事件)

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

根据您的情况(并将
键关闭
替换为
键代码
),我们得到:

告诉应用程序“系统事件”
现在设置为(当前日期)的秒数
稍后设置为现在+5
如果later>60,则将later设置为later-60
按下键命令
#解决方法:重复发送F2。
当(当前日期)的秒数不迟时重复此操作
钥匙代码120
结束重复
向上键命令
结束语
正如我所说的:这可能不起作用;还要注意,循环是“紧密的”,这意味着它将使您的机器非常繁忙(如果反复发送按键,但不一定尽可能快是一个选项,您可以插入一个短的
延迟

一些可选的背景信息

  • 向上键
    向下键
    命令虽然也需要
    系统事件
    上下文,但在
    系统事件.sdef
    、应用程序字典(仅列出了
    键代码
    击键
    )中没有公开,这可能表明苹果没有正式支持它们
  • 在OS X 10.9.1上(与OS X 10.8不同-不知道早期版本),存在一个奇怪的错误,即每当您使用
    键下
    (keycode)
    说明符时,会发送一个额外的“a”键
  • 确定关键代码值的方法(主要从各种其他SO答案中收集):
      <