如何使用 applescript 获取当前 Aquamacs window 的标题

How to get the title of the current Aquamacs window using applescript

我正在尝试以编程方式检索 aquamacs 的主要模式。我有几个想法:获取菜单栏项,获取 window 标题并使用正则表达式对其进行解析。

我都试过了,运行 遇到了问题,菜单栏和 window 数组都是空的,这使得无法做到这一点:

on test()
try
    tell application "System Events"
        if application "Aquamacs" exists then
            -- display notification "It's aquamacs"
            tell application "Aquamacs" to activate
            if menu bar item "File" of menu bar 1 exists then
                display notification "File exists"
                --Fails when the file menu bar item clearly is there
            else
                display notification "File doesn't exist"
            end if
        else
            display notification "It isn't aquamacs"
        end if
    end tell

end try
end test

test()

或者这个:

on getAppTitle(appN)

tell application appN
    activate
end tell

tell application "System Events"
    # Get the frontmost app's *process* object.
    set frontAppProcess to first application process whose frontmost is true
end tell

# Tell the *process* to count its windows and return its front window's name.
tell frontAppProcess
    if (count of windows) > 0 then --never runs because count is always zero
    set window_name to name of every window

    end if
end tell
end getAppTitle

getAppTitle("Aquamacs")

然后查看文件扩展名。

我不明白为什么系统和 AppleScript 之间存在如此不一致:它显然有 windows 肯定有标题,但脚本无法访问。

你的代码有问题!

在第一个代码块中,if menu bar item "File" of menu bar 1 exists then 位于 tell application "System Events" 块中,没有任何指定的应用程序或应用程序进程来查询该信息及其失败的原因。

在第一个代码块中,修复它的方法不止一种,一种是更改:

if menu bar item "File" of menu bar 1 exists then

收件人:

if menu bar item "File" of menu bar 1 of application process "Aquamacs" exists then

在第二个代码块中,tell frontAppProcess 等同于:

tell application process "Aquamacs"

这就是失败的原因,它需要是:

tell application "Aquamacs"

在带有 Aquamacs 的脚本编辑器中 运行ning,运行 以下代码:

tell application "Aquamacs" to count windows

它会 return 一个 window 计数。