【发布时间】:2015-08-15 05:31:28
【问题描述】:
我一直在努力解决这个问题,想知道您是否可以提供帮助。
使用 AppleScript,系统事件应用程序中提供了两个隐藏功能,可让您按下某个键(在完成其他操作(如单击)时按住它),然后再次将键恢复。
例如在此处查看答案Applescript to run Detect Displays,其中在执行单击时使用“向上键”和“向下键”。
但是为了这个例子,让我们使用一些非常简单的东西,一个保存快捷方式。
AppleScript 如下所示:
tell application "System Events"
key down command
keystroke "s"
key up command
end tell
我在 JXA 中得到的最接近的如下,但无论我传递给 keyDown 什么,它都会发送字母“a”:
events = Application("System Events")
events.keyDown("command")
events.keystroke("s")
events.keyUp("command")
有什么想法吗?
谢谢!
福蒂斯
【问题讨论】:
-
除非您别无选择,否则切勿在
System Events中使用key up/key down。在这里你有:keystroke "s" using command down -
根据我的帖子,我仅以 cmd + s 为例。最初的目的是在stackoverflow.com/questions/12640643/… 的帖子中重现 AppleScript,我认为必须使用按键向下和向上操作,因为脚本在按住按键时单击按钮。您可以在github.com/fgimian/macbuild/blob/master/detectdisplays.js 看到我完成的脚本
-
知道了,我只想提一下
key up/key down的使用非常危险。如果键按下时发生错误,它会保持按下状态! -
@vadian 绝对同意!这就是为什么在我的 detectdisplay.js 脚本中使用 try / catch 块至关重要的原因。我对此进行了相当彻底的测试,并确认它的工作非常可靠,但如果没有异常处理,它确实很危险。