在最近的项目子菜单中打开文档

时间:2013-04-28 11:17:37

标签: applescript

我写了这个AppleScript,通过从列表中选择对话框打开“最近的项目”子菜单中的选定项目。它适用于第一个项目,然后优雅地退出,然后继续打开其他项目。

你会在下面看到,我添加了一些“显示对话框”,让我知道它是否应该有效,而且一切都表明它应该。不过,它没有......

tell application "Finder"
    activate
    try
        tell application "System Events"
            tell process "Finder"
                tell menu "Recent Items" of menu item "Recent Items" of menu 1 of menu bar 1
                    set menuItemNames to (get name of (every menu item whose position ≠ missing value and name ≠ "Applications" and name ≠ "Documents" and name ≠ "Servers" and name ≠ missing value))
                    set text item delimiters of AppleScript to ","
                    set targetMenuItems to (choose from list menuItemNames with prompt "Choose a recent document to view:" with title "Recent Documents" OK button name "Open" with multiple selections allowed) as list
                    set targetMenuItems to (text items of targetMenuItems as text)
                    if targetMenuItems ≠ "false" then
                        set menuitemCount to (count text items in targetMenuItems)
                        display dialog menuitemCount
                        display dialog (text item 1 of targetMenuItems)
                        set x to 1
                        repeat menuitemCount times
                            set targetItem to (text item x of targetMenuItems)
                            display dialog targetItem
                            click menu item targetItem
                            set x to x + 1
                        end repeat
                    end if
                end tell
            end tell
        end tell
    on error errorMsg
        display dialog errorMsg
    end try
end tell

1 个答案:

答案 0 :(得分:0)

我可能会错过将列表转换为文本的某些原因,但这似乎适用于多个项目:

delay 0.3
tell application "System Events" to tell (process 1 where it is frontmost)
    tell menu 1 of menu item "Recent Items" of menu 1 of menu bar 1
        set menuitems to name of (menu items where position is not missing value and name is not "Applications" and name is not "Documents" and name is not "Servers" and name is not "Clear Menu" and name is not missing value)
        tell application (path to frontmost application as text)
            activate
            choose from list menuitems with multiple selections allowed
        end tell
        repeat with m in result
            click menu item m
        end repeat
    end tell
end tell