2013-05-05 94 views
3

我是Applescript的新手。我想知道Applescript从任意应用程序中显示Apple菜单栏项目(但许多栏应保留为原始应用程序)。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:我想知道这是因为控制-F2将焦点移动到菜单栏往往不起作用,如下面的链接报道: https://apple.stackexchange.com/questions/12723/control-f2-move-focus-to-menu-bar-only-works-occasionally

PS-2:我试过张贴图像,但不允许。

回答

-2

试试这个吧。它使用一个函数来代替当前正在使用的复杂的tell结构。

tell application "Finder" to activate 
menu_click({"Finder", "View", "Arrange By", "Size"}) 
+0

没有与该调用相关的处理程序... – adayzdone 2013-05-06 00:02:38

+0

谢谢,但它没有奏效。 – 2013-05-06 08:50:41

0

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

如果您运行以下脚本,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

+0

感谢您的回复。但是该脚本在Applescript Editor(run)中不起作用。我为ASCII字符31得到了“错误号-10004”(我想实际显示菜单项)。 – 2013-05-06 08:48:57

+0

显然你的设置与我的不同。它在这里完美运作。但我看到你已经解决了它。 – Mark 2013-05-06 11:07:01

+0

只是为了您的信息。我在MacBookPro上使用日语键盘和日语OS X 10.8.3。无论如何感谢(^ _ ^)/ – 2013-05-06 12:31:02

2

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 

点击菜单栏项目没有在全屏窗口的工作,虽然。如果系统事件在几分钟内没有被使用,它会自动关闭,并且在再次打开时有一个很短的延迟。

+0

感谢您的回答。它像魅力一样工作(^ _ ^)b – 2013-05-06 08:53:53

+0

....但是,没有达到我的目的。脚本改变菜单栏本身(到Finder的菜单栏)。虽然我想实际显示Apple菜单项,但我想保留原始应用程序的菜单栏不变(-.-) – 2013-05-06 09:18:34

+0

您正在使用哪个菜单项?当我使用FastScripts运行时,它显示当前应用程序的菜单栏。 – user495470 2013-05-06 09:22:55