Applescript 显示 Apple 菜单栏项目
Posted
技术标签:
【中文标题】Applescript 显示 Apple 菜单栏项目【英文标题】:Applescript to show Apple menu bar items 【发布时间】:2013-05-05 23:42:35 【问题描述】:我是 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-occasionally
PS-2:我尝试发布图片,但不允许。
【问题讨论】:
【参考方案1】: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
尽管在全屏窗口中单击菜单栏项不起作用。如果系统事件有几分钟没有使用,它会自动关闭,再次打开时会有短暂的延迟。
【讨论】:
....但是,没有达到我的目的。该脚本更改菜单栏本身(到 Finder 的菜单栏)。虽然我想实际显示 Apple 菜单项,但我想保持原始应用程序的菜单栏不变(-.-) 你用什么运行它?当我使用 FastScripts 运行时,它会显示当前应用程序的菜单栏。 对不起,我错了。它工作得很好,完全符合我的目的。再次感谢 d(^_^) @T_T,请看:What should I do when someone answers my question?【参考方案2】:您想实际显示菜单项,即在打开的菜单中还是在对话框窗口中,还是只想从菜单中选择一个菜单项?
如果您运行以下脚本,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。
【讨论】:
感谢您的回复。但是该脚本在 Applescript 编辑器(运行)中不起作用。我得到了 ASCII 字符 31 的“错误号 -10004”。(我想实际显示菜单项。) 显然您的设置与我的不同。它在这里完美运行。但我看你已经解决了。 仅供参考。我在 MacBookPro 上使用日文 OS X 10.8.3 和日文键盘。还是谢谢 (^_^)/【参考方案3】:这对我点击菜单栏中运行的 *** 应用程序很有用:
tell application "System Events" to tell process "GlobalProtect"
click menu bar item 1 of menu bar 2
end tell
因此,在 OP 案例中,将 "GlobalProtect"
替换为 "Finder"
并将 menu bar 2
替换为 menu bar 1
可能会使其工作......当我测试它时,它似乎没有在视觉上做任何事情,但它可能在后台做一些事情......也许进一步的按键或其他事情会做你想要的?
【讨论】:
【参考方案4】:试试这个。它使用一个函数而不是您当前使用的复杂的tell结构。
tell application "Finder" to activate
menu_click("Finder", "View", "Arrange By", "Size")
【讨论】:
以上是关于Applescript 显示 Apple 菜单栏项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firebreath NPAPI 插件中将 NSMenu 连接到 NSStatusItem,以便在单击状态栏项时出现菜单?
如何让 Apple Script 仅在特定的显示器/显示器中单击?