javascript-automation - 使用 JXA 发送系统事件按键向下/向上

标签 javascript-automation

我已经尝试解决这个问题一段时间了,想知道您是否可以提供帮助。

使用 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")

有什么想法吗?

谢谢!
福蒂斯

最佳答案

好的,这个解决方案很难找到,但我找到了:)

您可以使用特殊字符串 eCmd(命令)、eOpt(选项)和 eCnt(控制)来完成 SystemEvents.h 中定义的操作。

因此,以下代码有效!

events = Application("System Events")
events.keyDown("eCmd")
events.keystroke("s")
events.keyUp("eCmd")

希望这对外面的人有帮助。

关于javascript-automation - 使用 JXA 发送系统事件按键向下/向上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32021870/

相关文章:

javascript-automation - 我如何在 JXA 中使用 POSIX 路径

javascript - 如何从 cocoa 应用程序运行 JavaScript/AppleScript?

javascript - 无法转换类型

javascript-automation - JXA iTerm Automation - 等待命令完成

javascript - 使用 JXA 移动创建的文件

macos - 如何使用 JXA 关闭所有 Finder 窗口

javascript - 用于自动化显示对话框的 Mac OS X Javascript

javascript - 从 JavaScript for Automation (JXA) 脚本退出 Mac 应用程序

javascript - OS X JavaScript for Applications可以识别哪些剪贴板类型的类字符串?