OS X以编程方式单击Dock菜单的菜单项

时间:2014-10-16 18:28:06

标签: macos cocoa macos-carbon core-foundation

这是我的停靠菜单:

我想以编程方式点击该按钮"显示最近的窗口"。可以使用Cocoa或CoreFoundation以编程方式完成吗?

我知道停靠项与之关联的PID。

由于

2 个答案:

答案 0 :(得分:1)

这听起来像是可以使用GUI Scripting使用AppleScript完成的任务。

答案 1 :(得分:1)

有很多方法可以实现这一点,但通常您可以轻松设置可以处理此问题的AppleScriptoascript。基本上它涉及使用AXRaise,它基本上调用函数来引发指定应用程序的最前面的窗口。

<强>代码:

set mostrecentWindow to "mostrecentWindow"
set theApplication to "Safari"
tell application "System Events"
    if exists process theApplication then
        --raise frontmost window
        tell process theApplication
            set frontmost to true
            perform action "AXRaise" of (windows whose title is mostrecentWindow)
        end tell
    else if not (exists process theApplication) then
        --display alert
        display alert "Warning: process " & theApplication & " is not running"
    end if
end tell

以上示例检查进程Safari是否正在运行,如果是,则将其最近(或最前面)窗口提升到前台;否则显示进程未运行的警告。