3

我是 Applescript 新手。我想知道 Applescript 以显示来自任意应用程序的 Apple 菜单栏项目(但许多栏应该保留给原始应用程序)。

我尝试了以下脚本,将 Finder 用作一种虚拟应用程序,但它不起作用。

tell application "System Events"
    tell process "Finder"
        tell menu bar 1
            click menu bar item "Apple"
        end tell
    end tell
end tell

任何人都可以帮忙吗?

PS-1:我想知道这一点,因为 Control-F2 将焦点移到菜单栏通常不起作用,如以下链接所述: https ://apple.stackexchange.com/questions/12723/control-f2-move -focus-to-menu-bar-only-works-偶尔

PS-2:我试图发布图片,但不允许。

4

4 回答 4

4

process 1 where frontmost is true获取最前面的进程:

tell application "System Events" to tell (process 1 where frontmost is true)
    click menu bar item 1 of menu bar 1
end tell

但是,单击菜单栏项在全屏窗口中不起作用。如果系统事件有几分钟没有使用,它会自动关闭,再次打开时会有短暂的延迟。

于 2013-05-06T08:36:28.090 回答
1

您想实际显示菜单项,即在打开的菜单中或在对话窗口中,还是只想从菜单中选择一个菜单项?

如果您运行以下脚本,Apple 菜单将打开。使用 ASCII 字符 28-31 导航菜单。

tell application "System Events"
  -- focus
  key code 120 using control down
  -- navigate
  keystroke (ASCII character 31)
end tell

通用访问必须打开,菜单导航也必须打开。如果菜单导航关闭,您需要键入 Control-F1 将其打开。您可以通过脚本执行此操作,但我不知道如何使用 AppleScript 来检查其状态。F1 的键码是 122。

于 2013-05-06T08:02:39.487 回答
0

这对我来说可以单击在菜单栏中运行的 VPN 应用程序:

tell application "System Events" to tell process "GlobalProtect"
    click menu bar item 1 of menu bar 2
end tell

所以在 OP 的情况下,用 和 with 替换"GlobalProtect"可能"Finder"会使menu bar 2menu bar 1工作......当我测试它时它似乎没有在视觉上做任何事情,但它可能在后台做一些事情......也许进一步的按键或其他东西会做你想做的事?

于 2019-08-23T13:33:26.440 回答
-2

试试这个。它使用一个函数而不是您当前使用的复杂的tell结构。

tell application "Finder" to activate
menu_click({"Finder", "View", "Arrange By", "Size"})
于 2013-05-05T23:52:41.353 回答