Jak mogę zmodyfikować listę aplikacji w „Otwórz za pomocą…”?

41

Niedawno poszedłem otworzyć plik audio i chciałem go otworzyć w edytorze zamiast odtwarzacza. Kliknąłem go prawym przyciskiem myszy, najechałem kursorem na „Otwórz za pomocą ...” i zobaczyłem bardzo nieestetyczną listę.

Lista obsługiwanych aplikacji audio

W przeszłości widziałem problem polegający na tym, że w aplikacjach poprzednie wersje utknęły w /Applicationsfolderze z dołączonym numerem wersji, ale tutaj tak nie jest. Pomimo dwulicowości na tej liście, żadna aplikacja nie jest powielana /Applicationsani nigdzie indziej nie mogę znaleźć w moim systemie.

Co powoduje, że ta lista zapełnia się duplikatami i jak mogę je usunąć i upewnić się, że lista zawiera tylko najnowszą (i funkcjonalną) wersję?

Jason Salaz
źródło
Odbudowanie bazy danych usług uruchamiania (co robi to polecenie) powinno to naprawić. Czy podczas uruchamiania wydrukowano jakieś komunikaty o błędach?
robmathers,

Odpowiedzi:

45

Aplikacje nie muszą żyć /Applications. Jeśli masz zainstalowany klon systemu, może to oznaczać niektóre duplikaty, ale na pewno nie to, co obserwujesz. Lista programów dla Open with… jest przechowywana w bazie danych Launch Services . Jeśli lista zawiera wiele duplikatów, podobnie jak twoja, baza danych wygląda na to, że trzeba ją odbudować.

Wskazówki Macworld oferują sugestie, jak to naprawić:

lsregisterPolecenia adresem System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister, można powiedzieć, baza danych, aby zresetować. Macworld zaleca uruchomienie polecenia w ten sposób:/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Pamiętaj, że narzędzia takie jak Onyx lub Cocktail mogą również zresetować tę bazę danych. Pamiętaj, że Finder nie będzie ponownie czytać nowej bazy danych, więc albo będziesz musiał się wylogować i zalogować ponownie, albo wydać, killall Finderjeśli nie masz nic przeciwko zabiciu go dla wszystkich użytkowników komputera Mac, aby uniknąć wylogowania i zalogowania.

Daniel
źródło
1
Pomoże to w powielaniu i działało dla mnie kilka razy, więc +1. Czy masz coś, co pomoże OP w drugiej części pytania: jak EDYTOWAĆ tę listę?
Redandwhite
1
@Redandwhite Właściwie odpowiedział na moje pytania w zakresie, w jakim je miałem na myśli. Przez edycję naprawdę chciałem po prostu usunąć duplikaty, a lsregister zrobi to za mnie. Jeśli chcesz go bezpośrednio edytować, zadaj go jako własne pytanie . Najlepsze jest to, że w ten sposób uzyskasz upvote rep :).
Jason Salaz,
Cóż, odpowiedział na moje pytania, ale niestety to nie rozwiązało problemu . Lista pozostaje identyczna po uruchomieniu polecenia podanego w odpowiedzi. Obraz połączony w tym komentarzu pokazuje, że jestem prawie pewien, że w moim systemie jest tylko jedna kopia pakietu aplikacji Spotify, pomimo kwoty pokazanej na liście.
Jason Salaz,
2
Cofam to. Wydaje się, że proces ten zajął trochę czasu, ale nie widziałem 2 minut temu „Otwórz za pomocą”. Lista jest znowu czysta. Tak!
Jason Salaz,
Tak! Cieszę się, że to zadziałało. Kopałem i nie znalazłem lepszej odpowiedzi, więc cieszę się, że ta zadziałała.
Daniel
7

Po sprawdzeniu w centrum uwagi, aby upewnić się, że faktycznie nie masz dysku zapasowego lub innego woluminu ze zduplikowanymi kopiami aplikacji (w takim przypadku Finder pokazuje ci wszystkie aplikacje, o których wie, że mogą otworzyć plik), spróbuj uruchomienie polecenia w celu przebudowania bazy danych usług uruchamiania:

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

Następnie wyloguj się i zaloguj ponownie. To powinno odbudować bazę danych Launch Services dla OS X, usuwając wszystkie zduplikowane wpisy.

daviesgeek
źródło
Wspaniały! Cieszę się, że to zadziałało.
daviesgeek
6

CleanOpenWith to aplikacja, którą stworzyłem do czyszczenia menu Otwórz za pomocą…

CleanOpenWith jest open source i bezpłatny. Aplikacja automatyzuje następujące kroki :

  1. Otwórz terminal: Aplikacje / Narzędzia / Terminal.app
  2. Wpisz następujące polecenie:

    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
    
  3. Poczekaj na zakończenie wykonywania tego polecenia

  4. Jeśli nie wystąpił błąd, przejdź do ostatniego kroku, ponownie uruchamiając Findera
  5. Ponowne uruchomienie Findera nie wymaga ponownego uruchomienia komputera Mac. Po prostu naciśnij Control+ Option, klikając ikonę Findera w Docku, wybierz Uruchom ponownie i gotowe!
Stephane Paquet
źródło
1

Właśnie mnie ugryzł w dość czystą, nową instalację Mountain Lion, w której miałem kilka wersji aplikacji i myślę, że mam realny pomysł, jak powstały duplikaty w moim przypadku.

Uruchamiam ten Air w trybie klapki i prawdopodobnie wyciągnąłem go, gdy spał, a baza danych usług uruchamiania nie posprzątała aplikacji zainstalowanych na moim zewnętrznym dysku podłączonym do mojego ekranu kinowego.

Mam dysk 3 TB z kilkoma instalowalnymi instalacjami Lion i Mountain Lion, które odpowiadają dokładnie liczbie aplikacji systemowych i aplikacji innych firm, które powinny się zarejestrować, aby otworzyć plik JPEG:

Otwierać z...

Podobnie jak w przypadku innych odpowiedzi - zmuszanie lsregister do zabicia bazy danych i kopanie Findera załatało mnie w mniej niż 20 sekund

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain user -domain local -domain system
killall Finder
bmike
źródło
To stary temat, ale napotkałem ten sam problem. Po prostu dodaj foldery aplikacji na dysku zewnętrznym do listy wykluczeń w centrum uwagi: superuser.com/a/349054/82434
evan.bovie
@ emb1995 Ten problem występuje nawet wtedy, gdy masz tylko jeden Dysk z powodu błędu w sposobie pobierania aktualizacji przez App Store. Nie mam dobrego wyjaśnienia, dlaczego Chrome i inne pliki inne niż MAS są duplikowane, więc być może występuje więcej niż jeden błąd lub nieprzyjemna interakcja, gdy zacznie ona uszkadzać bazę danych i rozprzestrzenianie się szkód.
bmike
Tak. Wiem o błędzie, ale wyglądało na to, że wszystko działało zgodnie z przeznaczeniem, jest po prostu niewygodne dla osób takich jak my z wieloma instalacjami. Może lsregisterkiedyś zajrzę do bazy danych i innego pokrewnego kodu, ale być może ten problem został rozwiązany w Mavericks. Nie doświadczyłem tego problemu z GM lub DP. Nie zainstalowałem jeszcze wydania publicznego. (dziwne ... nie mogę o tobie wspomnieć w moim komentarzu)
evan.bovie
0

Wystąpił problem polegający na tym, że są kopie zapasowe moich aplikacji na dysku zewnętrznym. Jeśli mam te dyski zindeksowane lub uruchomione przez aplikacje, zostaną one wyświetlone na liście.

CDK
źródło
Tak, mam podłączony dysk kopii zapasowej Timemachine. Jak wykluczyć te stare aplikacje z menu?
Iwanow
2
@CDK, To brzmi bardziej jak komentarz niż odpowiedź.
HairOfTheDog
0

Wiem, że to stary wątek, ale dla mnie to, co wyjaśniło, polegało na „Force Quit”, a następnie ponownym uruchomieniu Findera.

Problem pojawił się na 3-dniowym całkowicie nowym komputerze iMac.

Vesper
źródło