AppleScript 告诉应用程序 "System Events" 仅在我的 Mac 的 1 个帐户上非常慢

AppleScript tell application "System Events" extremely slow only on 1 account of my Mac

我对此感到困惑。任何使用 tell application "System Events" 运行 的 AppleScript 仅在我的 Mac 的一个帐户 上使用 tell application "System Events" 运行s 慢 但在另一个帐户上正常

举个简单的例子,tell application “System Events” to display dialog “Hello World” 在帐户 1 上几乎立即显示对话框,但在帐户 2 上显示对话框最多需要 6 或 7 秒。

编辑: 澄清一下,正如 user3439894 在下面的评论中提到的那样。我知道系统事件不需要调用显示对话框。此问题与显示对话框无关。我用它作为一个简单的例子来说明这个问题。正如我在下面提到的 我在系统事件中调用的任何 代码都很慢(例如,将最前面发送到 true,单击菜单项等)。

虽然它只是系统事件调用。一个简单的 display dialog “Hello World” 或任何其他不涉及系统事件的代码将 运行 在两个帐户上都很快。

更多注意事项:

  1. 它不仅仅是在告诉应用程序“系统事件”中显示对话框,它是我试图在告诉系统事件中 运行 的任何代码(例如单击菜单项、将 frontmost 设置为 true 等)。我只是使用显示对话框作为一个简单的例子。
  2. 延迟实际上是不一致的。比如display dialog命令,大部分时间大约需要6、7秒的时间才会出现对话框,但偶尔也会瞬间出现对话框。其他时候,对话框会立即出现,但随后单击“确定”按钮会导致 6 或 7 秒的延迟(使用沙滩球)。
  3. 同一个 Mac 上的两个帐户都是管理员帐户。
  4. 延迟发生在脚本编辑器、osascript 或 apple 脚本应用程序中。

我迷路了。有什么想法吗?

编辑 2 - 基于评论的更多说明:

  • 几天来我一直在解决这个问题,此时我相当确定以下几点:

  • 这与我的代码或我调用脚本的方式无关。它也不是一般的 AppleScript,或者帐户很慢。

  • 脚本 NOT 涉及 tell application "System Events" 运行 在两个帐户上都可以。这两个帐户通常 运行ning 很快。

  • 特别是 tell application "System Events"ONE 帐户上。tell application "System Events"运行在我的一个用户帐户上没问题。相同的脚本,称为完全相同的方式,在同一台计算机上的第二个用户帐户上花费 6 到 7 甚至 10 秒到 运行。这两个帐户都有管理员权限。

@TedWrigley 在我的主要 post 的评论中提供了一些建议,使我能够确定问题所在。完全归功于他!谢谢@TedWrigley!我在这里 post 并将其标记为正确答案,以防其他人遇到与此类似的问题。

编辑:这是一个特定的 Elgato Stream Deck 插件;缩放插件!

在安全模式下启动允许我最初识别我安装的 Elgato Stream Deck 软件(版本 4.9.2)出现导致问题。我不明白为什么这会干扰系统事件,因为 SE 在 Activity Monitor 中似乎没有任何问题,而且我在两个帐户上都有 Stream Deck 软件,但它只会导致一个系统事件出现问题帐号。

卸载并重新安装该软件后,调用 tell application "System Events" 的 AppleScripts 在两个帐户上都如预期的那样 运行...

UNTIL 我重新安装了我的插件。我发现干扰系统事件的实际上不是 Stream Deck 应用程序本身,而是一个特定的插件,即 Zoom Plugin V2.1 11/16/20 https://lostdomain.org/stream-deck-plugin-for-zoom/。我只在一个帐户上使用此插件,这就是为什么我只在该帐户上看到系统事件问题。