0

我们已经发布了几个不同版本的应用程序。它们有相似的名称——Foo BasicFoo DeluxeFoo Retro等。相似但不同的包标识符也一样。(这不是我的主意!)有些用户安装了多个这些应用程序,但只能运行一个。

所有应用程序都支持相同的 AppleScript 字典。我需要一个 AppleScript 来编写我们应用程序当前运行的版本来执行任务。我怎样才能做到这一点?

4

1 回答 1

0

我让它工作了。它需要几个部分:

  • 获取正在运行的应用程序的名称。您可以使用processesofSystem Events或 else来执行此操作do shell script "ps …",您认为在您的情况下会更可靠。
  • 然后,使用Mac上某个应用程序中的术语,您可以
  • *tell application appName...,前提是你有
  • 将您的脚本保存为Application,因此它已经编译。

这是一些代码。我正在编写的脚本还没有使用系统事件,所以为了让新用户免于访问系统偏好设置的痛苦,我选择使用 /bin/ps 来代替......</p>

set appName to runningAppWithBaseName("Foo")
using terms from application "Foo Deluxe" -- an app on your Mac
    tell application appName
       (* whatever code you want here *)
    end tell
end using terms from

on runningAppWithBaseName(baseName)
    set command to "/bin/ps -eo args | grep " & baseName & " | grep -v grep"
    (* The "grep -v grep" is to exclude the grep process itself from the results. *)

    try 
        set fullPathOfRunningApp to do shell script command
    end try

    (* Here, given the fullPathOfRunningApp and your list of candidate app names, *)
    (* insert  code to determine the name of the running app. *)
    return nameOfRunningApp
end runningAppWithBaseName
于 2017-02-18T06:35:49.040 回答