7 votes

Est-il possible d'obtenir la liste "Ouvrir avec..." via AppleScript ?

Je souhaite créer un AppleScript qui récupère la sélection du Finder et affiche une liste d'applications capables de l'ouvrir.

En d'autres termes, existe-t-il un moyen d'obtenir la liste des applications qui apparaît lorsque vous utilisez le sous-menu contextuel "Ouvrir avec >" du Finder ?

4voto

Fuzzy Purple Monkey Points 702

Une option serait d'utiliser Toutes les applications dans un shell script :

tell application "Finder"
    set p to POSIX path of (item 1 of (get selection) as text)
end tell
set l to do shell script "~/bin/AllApplications -path " & quoted form of p & " | sed 's/.*\\///g;s/\\.app$//g' | sort -f | uniq"
set answer to choose from list (paragraphs of l) without multiple selections allowed
if answer is false then return
set a to item 1 of answer
set p to path to application a
tell application "Finder" to open selection using p

Vous pouvez également utiliser les événements système pour obtenir les applications du menu Ouvrir avec :

tell application "System Events" to tell process "Finder"
    set l to name of menu items of menu 1 of menu item "Open With" of menu 3 of menu bar 1
end tell
set text item delimiters to linefeed
set l2 to do shell script "grep -vx 'missing value' <<< " & quoted form of (l as text) & " | grep -vx Other… | sed -E 's/ \\([^)]*\\)$//g;s/ \\(default\\)$//g;s/\\.app$//g' | sort -f | uniq"
set answer to choose from list (paragraphs of l2) without multiple selections allowed
if answer is false then return
set a to item 1 of answer
set p to (path to application a)
tell application "Finder" to open selection using p

Je n'ai pas vraiment testé les scripts, mais ils sont probablement affectés par rdar://9406282 : La sélection de script du Finder peut faire référence à une valeur erronée non corrélée avec l'interface utilisateur. .

Questions connexes à Super User :

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X