为什么 AppleScript 总是在按下 Command 的情况下发送击键?

2023-11-30

我看到很多这样的 AppleScript 例子

tell application "TextEdit"
    activate
    tell application "System Events"
        keystroke "s"
    end tell
end tell

预期结果是字母“s”将被键入到 TextEdit 中的活动文档中(假设至少有一个文档窗口)。但它总是尝试保存文档(是否保存已更改的文档并打开保存对话框(如果是新文档))。任何应用程序中的任何键在任何时间都会发生同样的事情......

有谁知道为什么系统事件总是发送诸如“...使用{command down}”之类的击键?


我使用 Cmd+R 从 AppleScript 编辑器运行脚本,而不是通过单击“运行”按钮。在我按下“R”键后,脚本立即开始执行,并且该脚本在我释放 Cmd 或 R 之前发送击键“S”。这就是为什么发送的击键“S”由带有修饰符 Cmd 的 TextEdit 解释。

解决方法是单击“运行”按钮或在脚本开头添加延迟并使用 Cmd+R:

delay 0.2 -- 0.2 second delay is enough

tell application "TextEdit"
    activate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 AppleScript 总是在按下 Command 的情况下发送击键? 的相关文章

随机推荐