Comment puis-je modifier la liste des applications sous «Ouvrir avec…»?


41

Je suis récemment allé ouvrir un fichier audio et je voulais l'ouvrir dans un éditeur plutôt que dans un lecteur. J'ai cliqué dessus avec le bouton droit de la souris, j'ai survolé «Ouvrir avec…» et une liste très inesthétique a été rencontrée.

Liste des applications audio prises en charge

J'ai déjà vu un problème dans le passé où les versions précédentes des applications étaient bloquées dans le /Applicationsdossier avec leur numéro de version ajouté, mais ce n'est pas le cas ici. Malgré la duplicité de cette liste, aucune application n'est dupliquée /Applicationsni nulle part ailleurs sur mon système.

Pourquoi cette liste est-elle remplie de doublons et comment puis-je les supprimer et m'assurer que seule la version la plus récente (et fonctionnelle) est la liste?


La reconstruction de la base de données Launch Services (ce que fait cette commande) devrait résoudre ce problème. Des messages d'erreur ont-ils été imprimés lorsque vous l'avez exécuté?
robmathers

Réponses:


45

Les applications ne doivent pas vivre dans /Applications. Si vous avez un clone de votre système monté, cela peut expliquer certains doublons, mais certainement pas ce que vous observez. La liste des programmes pour Open with… est conservée dans la base de données Launch Services . Si la liste contient autant de doublons que le vôtre, la base de données semble devoir être reconstruite.

Macworld Hints propose une solution pour résoudre ce problème:

La lsregistercommande, située à System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister, peut indiquer à la base de données de se réinitialiser. Macworld recommande d’exécuter la commande comme suit:/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Notez que des utilitaires comme Onyx ou Cocktail peuvent également réinitialiser cette base de données pour vous. Notez que le Finder ne relira pas la nouvelle base de données. Vous devrez donc vous déconnecter et vous reconnecter à nouveau ou émettre un message killall Findersi cela ne vous dérange pas de le tuer pour tous les utilisateurs de votre Mac afin d’éviter une déconnexion.


1
Cela aidera avec la duplication, et a travaillé pour moi plusieurs fois, donc +1. Avez-vous quelque chose pour aider le PO avec la deuxième partie de la question: comment MODIFIER cette liste?
Redandwhite

1
@Redandwhite En fait, il a répondu à mes questions dans la mesure où je les pensais. Par éditer, je voulais vraiment dire simplement supprimer les dupes, et lsregister le fera pour moi. Si vous souhaitez le modifier directement, posez-le comme votre propre question . La meilleure partie de cela est, vous obtiendrez le représentant upvote pour vous-même de cette façon :).
Jason Salaz

Eh bien, il a répondu à mes questions, mais malheureusement, cela n'a pas résolu le problème . La liste reste identique après l'exécution de la commande donnée dans la réponse. L'image liée dans ce commentaire montre que je suis assez confiant qu'il n'y a qu'une seule copie de l'ensemble d'applications Spotify sur mon système, malgré le montant indiqué dans la liste.
Jason Salaz

2
Je le reprend. Le processus semble avoir pris un peu de temps, mais j'ai visualisé «Ouvrir avec ...» il y a moins de 2 minutes. La liste est à nouveau propre. Yay!
Jason Salaz

Yay! Heureux que cela a fonctionné pour vous. J'ai creusé et je n'ai pas trouvé de meilleure réponse, alors je suis heureux que celle-ci ait fonctionné.
Daniel

7

Une fois que vous avez coché Spotlight pour vous assurer de ne pas disposer d'un lecteur de sauvegarde ou d'un autre volume avec des copies dupliquées des applications (dans ce cas, le Finder vous montrera toutes les applications dont il sait qu'elles peuvent ouvrir le fichier), essayez exécution d'une commande pour reconstruire la base de données de services de lancement:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Puis déconnectez-vous et reconnectez-vous. Cela devrait reconstruire la base de données Launch Services pour OS X, en supprimant toutes les entrées en double.


Génial! Heureux que cela a fonctionné pour vous.
daviesgeek

6

CleanOpenWith est une application que j'ai créée pour nettoyer le menu Ouvrir avec….

CleanOpenWith est open source et gratuit. L'application automatise ces étapes :

  1. Terminal ouvert: Applications / Utilitaires / Terminal.app
  2. Tapez la commande suivante:

    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
    
  3. Attendez que cette commande se termine

  4. Si aucune erreur ne survient, passez à la dernière étape, redémarrez le Finder.
  5. Le redémarrage du Finder ne nécessite pas de redémarrer votre Mac. Appuyez simplement sur Control+ Optiontout en cliquant sur l'icône du Finder dans le Dock, sélectionnez Relancer et le tour est joué!

1

Je viens juste de me faire mordre sur une nouvelle installation assez propre de Mountain Lion où j’avais plusieurs versions d’apps et je pense avoir une idée réaliste de la façon dont les doublons ont été obtenus dans mon cas.

J'exécute cet Air en mode clapet et je l'ai probablement tiré pendant qu'il dormait et que la base de données de services de lancement n'a pas été nettoyée pour les applications montées sur mon disque externe connecté à l'écran de mon cinéma.

J'ai un disque de 3 To avec plusieurs installations amorçables de Lion et Mountain Lion qui correspondent exactement au nombre d'applications système et tierces que j'ai qui seraient censées s'enregistrer pour ouvrir un fichier jpeg:

Ouvrir avec...

Tout comme pour les autres réponses - obliger lsregister à tuer la base de données et lancer Finding m'a rafistolé en moins de 20 secondes

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain user -domain local -domain system
killall Finder

C'est un vieux sujet, mais j'ai rencontré le même problème. Ajoutez simplement les dossiers d’application de votre lecteur externe à la liste des exclusions Spotlight: superuser.com/a/349054/82434
evan.bovie

@ emb1995 Ce problème se produit même lorsque vous ne possédez qu'un seul lecteur en raison d'un bogue dans la façon dont l'App Store télécharge les mises à jour. Je n'ai pas de bonne explication sur la raison pour laquelle Chrome et d'autres fichiers non MAS sont dupliqués. Il peut donc y avoir plus d'un bogue ou une interaction désagréable une fois que cela a commencé à corrompre les éléments de la base de données et les dommages se propagent.
bmike

Ouais. Je connais le bogue, mais il semblait que tout fonctionnait comme prévu, il est tout simplement gênant pour des personnes comme nous qui effectuent plusieurs installations. Je chercherai peut-être un jour lsregisterla base de données et d’autres codes associés, mais ce problème est peut-être résolu dans Mavericks. Je ne rencontrais pas ce problème avec le GM ou les PDD. N'a pas encore installé la version publique. (étrange ... je ne peux pas vous mentionner dans mon commentaire)
evan.bovie

0

J'ai rencontré le problème où il y a des sauvegardes de mes applications sur un lecteur externe. Si ces lecteurs sont indexés ou lancés, à partir de ces pilotes, ils apparaissent dans la liste.


Oui, j'ai un disque de sauvegarde Timemachine connecté. Comment exclure ces anciennes applications de Menu?
Ivanov

2
@ CDK, cela ressemble plus à un commentaire qu'à une réponse.
HairOfTheDog

0

Je sais que c'est un vieux fil, mais pour moi, ce qui a été clarifié allait aller à "Forcer à quitter" puis à relancer le Finder.

Un problème est survenu sur un iMac de 3 jours totalement à jour.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.