AppleScript 击键有时会出现大写字母?

问题描述 投票:0回答:4

我实际上正在排除故障,并且我已经使用了一段时间的阿尔弗雷德工作流程。作者在 2014 年开发了它,它非常简单,所以我不确定我会从他们的论坛获得很多帮助。基本上,我有这个:

set chars to count (get the clipboard)
if chars > 500 then
    do shell script "afplay /System/Library/Sounds/Funk.aiff"
else
    tell application "System Events"
        delay 1
        keystroke (get the clipboard)
    end tell
end if

这个想法是,它会在我的剪贴板上输入任何内容,这在登录服务器和其他具有安全字段的事物时很有帮助。最近 10.12.2 或 10.12 总体上有什么变化吗?几周前这工作得很好,但现在它在输出中随机大写字母。

我尝试删除除以下内容之外的所有内容,并更改延迟但无济于事:

tell application "System Events"
    delay 1
    keystroke (get the clipboard)
end tell

我感谢任何帮助。如果这不是正确的位置,我很乐意将其移动,但我不认为它与系统相关。我已经在 Automator 中对此进行了测试,结果是相同的。

谢谢!

applescript
4个回答

2
投票

此已知问题有一个解决方法。

您可以一次使用

keystroke
一个字符,每个字符之间稍有延迟,这似乎可以解决问题:

repeat with letter in (get the clipboard)
    keystroke letter
    delay 5.0E-4
end repeat

就每个角色之间的延迟而言,

5.0E-4
对我来说似乎足够了,但您的里程可能会有所不同。如果不是每次都有效,请尝试一下延迟,看看什么最适合您。


1
投票

供将来参考 - MacOS Catalina

我遇到了同样的问题,并通过重新启动 Mac 来修复它..不知道为什么..但你已经找到了。

尝试了多种选项,例如使用 ascii 键并暂停每个字符.. 不起作用 .. 恢复为击键并重新启动 Mac .. 完成


0
投票

那是很久以前的事了,但我刚刚经历过看起来同样的问题。然而,对我来说,原因是大写锁定在内置键盘上与我的 Cherry KC 6000 Slim 上独立运行,并且脚本使用板载键盘来确定大写锁定是否打开:facepalm:

© www.soinside.com 2019 - 2024. All rights reserved.