如何«等到应用程序启动»applescript?

How «Wait until application launch» applescript?

如何正确编写代码?

我运行自动机中的应用Photoshop 我正在等待它完全加载 然后我按 10 次 Tab 并按 Enter。

我试过了:

enter image description here

看起来那部分不起作用。因为 Tab 在应用程序完全加载之前就开始点击了。怎么了?谢谢!

repeat until application launch
delay 0.5 end repeat delay 0.5

我不太了解 Photoshop,但我知道它有一个加载屏幕。我在 Affinity Photo 中尝试了以下代码,这是与 Photoshop 类似的产品。

tell application "Photoshop"
    launch
    set theBool to false
    repeat until theBool
        tell application "System Events" to ¬
            if menu item "Close" of ¬
                menu 1 of ¬
                menu bar item "File" of ¬
                menu bar 1 of ¬
                application process "Photoshop" exists then ¬
                set theBool to true
        delay 0.2
    end repeat
end tell

repeat until theBool 通过检查是否存在某些在加载屏幕打开时不可用的菜单项来检查加载屏幕是否结束。如果 "Close""File" 在 Photoshop 中不起作用,您可以选择其他选项。

OP 很可能不理解主要内容:GUI 脚本(在这种情况下,发送 10 个标签,然后Enter,即AppleScript语言中的keystroke tabkeystrokereturn] 仅适用于最前面的 windowlaunch 命令启动一个应用程序而不将其 window 置于最前面。

正确的方法是 1) 使用 activate 应用程序“Photoshop”命令 2) 使用 make new document 命令,3)检查新的 window 是否存在,4) 发送击键命令。在 Automator 中,运行 AppleScript 动作 应该是这样的:

on run {input, parameters}
    tell application "Photoshop"
        activate
        make new document with properties {name:"myNewDocument"}
        repeat until window "myNewDocument" exists
            delay 0.1
        end repeat
    end tell
    tell application "System Events"
        repeat 10 times
            delay 0.1
            keystroke tab
        end repeat
        keystroke return
    end tell
    return input
end run

注意:未测试,因为 PhotoShop.app 没有安装在我的 Mac 上。如果需要,我准备更正我的脚本。总的来说,问题不是很清楚。

这是答案:

tell application "Your app"
    launch
    activate
end tell