2013-05-05 93 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