Діалогове вікно "Відкрити з" ігнорує мій вибір


41

Я працюю під управлінням Windows 7 x64. У мене є тип файлу, який я хочу пов’язати з Microsoft Access 2003.

Клацніть правою кнопкою миші на файл і виберіть «Відкрити» -> «Вибрати програму за замовчуванням». У діалоговому вікні "Відкрити за допомогою" я вибираю кнопку перегляду. Я вибираю програмні файли (x86) \ Microsoft Office \ Office11 \ msaccess.exe і натискаю "Відкрити".

Я закінчуюсь у діалоговому вікні "Відкрити", але нічого не змінилося. Доступ не вказаний як програма, з якою можна відкрити файл. Оригінальна програма (Adobe Acrobat), пов’язана з цією програмою, все ще обрана.

Якісь поради щодо залучення цієї асоціації до роботи?


4
Так, це химерна помилка, яка мене довго дратувала та кілька версій Windows. Це відбувається лише з перервами, тому я не відслідковував, які виконувані файли демонструють / викликають таку поведінку, тому мені не вдалося знайти якоїсь унікальної спільності між ними.
Synetech


це відбувається тому, що Windows використовує лише ім'я виконавця, а не повний шлях при зберіганні асоціацій. Повне пояснення та рішення: superuser.com/a/886139/425338
diego nunes

Відповіді:


49

Причиною є, швидше за все, примха в реєстрі, яка прослизнула з незрозумілої причини.

Переконайтесь, що ключове значення в наступному розташуванні містить правильний шлях:

HKEY_CLASSES_ROOT\Applications\YOURFILE.EXE\shell\open\command

Знайдіть ім’я програми та розширення файлу в реєстрі, щоб побачити, чи можуть бути також пошкоджені й інші записи.


4
Це було саме проблемою для мене .. як тільки я змінив значення в цьому точному місці, воно спрацювало нормально, як тільки я спробував переглянути -> відкрити знову
abelito

Коли ключове значення не вказує на правильне розташування програми, змініть це, як зазначено в іншій відповіді тут
sancho.s Відновіть Моніку

2
Це зафіксувало це для мене. Проблема в тому, що я модернізував її з 32-розрядної до 64-розрядної, тому він шукав Program Files (x86)замістьProgram Files
endolith

2
Виправлення шляху до програми в цьому ключі реєстру виправлено. Він з’являється, коли я видалив додаток, а потім перевстановився іншим шляхом, цей ключ реєстру не було оновлено. Виглядає помилка Win7, що якщо запис для додатка існує, Windows закриває процес вибору програми без зміни запису реєстру; навіть якщо вибраний шлях не відповідає існуючому значенню запису реєстру. Заважає користувачам змінювати шлях до наявного додатку, використовуючи графічний інтерфейс "Відкрити з".
четто

3
З повагою MS ... 6 і півроку, і ми все ще робимо це.
ZaLiTHkA

14

Насправді це дуже проста проблема. Це відбувається тому, що Windows використовує асоціації, що базуються виключно на базовому виконуваному імені програми .

Щоразу, коли ви асоціюєте програму з розширенням, програма буде присутня у HKEY_CLASSES_ROOT\Applicationsсписку, де ключові назви є базовими іменами виконуваних файлів (наприклад, MSACCESS.EXEта AcroRD32.exe). Ви не можете пов’язати іншу програму з розширенням файлу, якщо воно має те саме ім'я, що виконується . Сталося те, що ви, ймовірно, перенесли програмне забезпечення в інше місце (ви можете бачити, що це відбувається в основному з портативними версіями програмного забезпечення), і коли ви спробуєте вказати на нього, Windows побачить, що ім’я вже зареєстровано, і натомість спробує використовувати зареєстроване шлях. Якщо він не може знайти це, він мовчки ігнорує помилку і представляє діалогове вікно назад, без жодних змін.

Рішення настільки ж просто: просто виправте або видаліть ключ і спробуйте ще раз. Це спрацює.HKCR\Applications\YourAppName.exe


Це також трапляється, коли у вас встановлено кілька версій Adobe Photoshop (через Creative Cloud), всі з яких використовують одне і те ж ім'я виконавця.
Фрогз

Це воно! Дуже дурні, вони також повинні зберігати шлях або хеш.
Філіп Ф

11

Ключ реєстру, показаний вище, був моєю проблемою.

HKEY_CLASSES_ROOT\Applications\MSACCESS.EXE\shell\open\command

Слід прочитати:

"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "%1"

для доступу 2010.

У ньому все ще було записано:

"C:\Program Files\Microsoft Office\Office12\MSACCESS.EXE" "%1"  

для офісу 2007 року.

Файл не існує в цьому місці, тому він не з’являвся у селекторі програм, поки я не змінив запис.

Після оновлення реєстру я зміг вибрати Microsoft Access безпосередньо зі списку доступних програм.


4

У мене була схожа проблема з Sublime Text. Це не відображатиметься в Open Withдіалоговому вікні, що б я не робив. Ось як я це вирішив.

  1. Відкрити regeditабо будь-який редактор реєстру.
  2. Перейдіть до: \HKEY_CURRENT_USER\Software\Classes\Applications\sublime_text.exe\shell\open.
  3. Видаліть усі підрозділи.
  4. Створіть підрозділ commandзі значенням "C:\path\to\sublime_text.exe" "%1"(подвійні лапки включені!).

Звичайно, це буде працювати з будь-якою програмою, не тільки з Sublime Text. Просто замініть sublime_text.exeвиконувану програму.


2

Якщо все не вдалося, ви можете відредагувати реєстр вручну (спершу скопіюйте вулик / ключ):

Кожен тип файлу (розширення), з яким пов'язана програма, має ключ реєстру під HKEY_CLASSES_ROOT.

Або скористайтеся FileAsoc , редактором асоціації файлів Windows

FileAsoc - безкоштовна програма з відкритим кодом.

Або файл типу Doctor , який є частиною інструментів електроенергії Creative Element (умовно-безкоштовне)

alt текст


Як змінити це через реєстр вони вказані в іншій відповіді тут
sancho.s Відновити Моніку

1
FileAsoc мені не здається гарною рекомендацією, він вимагає досить своєрідного середовища виконання VB (яке не встановлено за замовчуванням і, здається, важко для нього, посилання зі сторінки FileAsoc на них мертві. І рекомендований "Creative Element Електроінструменти "також більше недоступні!
кодування

1
Здається, ця програма випала з Інтернету. Натомість спробуйте FileTypesMan (працював на мене): nirsoft.net/utils/file_types_manager.html
roblogic

1

Я вирішив проблему для свого wmplayer.exe (який відсутній і недоступний у відкритому діалозі), змінивши

HKEY_CURRENT_USER\Software\Classes\Applications/wmplayer.exe\shell\open\command

з

"C:\Program Files\Windows Media Player\wmplayer.exe" "%1"

до

"C:\Programme\Windows Media Player\wmplayer.exe" "%1"

Де Programmeлокалізована (німецька) версія програми «Файли програм». Це не має для мене ніякого сенсу (як коли я натискаю "Шлях копіювання" в меню оболонки Windows Explorer, шлях містить Program Files. І коли я додаю Media Player, переглядаючи діалог "відкрити з", його також додають із Program Files), але це працювало як рішення, де просто видалення ключа reg не робило.


0

Я бачив випадки, коли деякі діалоги не спонукають вас до підвищення безпеки та не дають вам повідомлення про те, що зміни неможливо було зробити. Спробуйте це зробити через панель управління

Панель управління -> Програми -> Програми за замовчуванням -> Встановити асоціації

Або просто введіть "файл відкрити" у пошуку в меню "Пуск" і виберіть "Зробити тип файлу завжди відкритим за допомогою певної програми"


0

Нещодавно у мене були подібні проблеми з усіма моїми об’єднаннями медіафайлів, і це здалося через неприємний медіаплеєр під назвою DAPlayer. Навіть під Control Panel/ Programs/ Default Programs/ Set Default Programsмені не вдалося змінити програму за замовчуванням. Мабуть, він встановив UserChoiceключі HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExtsдля всіх своїх асоціацій файлів для доступу лише для читання, навіть для адміністраторів. Навіть після видалення програми всі мої асоціації залишилися застряглими у "Невідомому додатку".

Найпростіший спосіб виправити це - перейти до цієї клавіші в Regedit, клацніть правою кнопкою миші та виберіть Дозволи, натисніть кнопку Додатково, встановіть прапорець "Замінити всі дозволи дочірнього об'єкта" та натисніть кнопку ОК.

Або якщо ви віддаєте перевагу командному рядку, ви можете використовувати інструмент набору ресурсів Windows під назвою SubInACL :

subinacl /subkeyreg HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /grant=administrators=f /grant=system=f /grant="%USERNAME%"=f

Але будьте обережні з такими операціями масового реєстру, як це: неправильне використання може зробити вашу систему непрацездатною! Я не несу відповідальності за ваші дії.


0

NirSoft часто рятує: http://www.nirsoft.net/utils/file_types_manager.html

Це FileTypesMan (диспетчер типів файлів для Windows) від NirSoft.


Ласкаво просимо до Супер Користувача! На цьому веб-сайті Q&A ми намагаємось дати хороші відповіді на питання, які люди розміщують. Частиною цього є включення відповіді у ваш пост, а не просто надання посилання на іншу сторінку, яка може відповісти на питання . Відредагуйте свою відповідь, щоб включити власне рішення розміщеного питання. Див. Як посилатися на матеріали, написані іншими для допомоги.
cascer1

0

Хороший спосіб виправити це - видалення всіх записів, пов’язаних із потрібною програмою

Наприклад:

Якщо файл .exe, який слід розмістити на списку " Відкрити", є NOTEPAD ++. EXE

1 - Відкрийте regedit і знайдіть для блокнота ++. Exe

2 - Видаліть усі знайдені записи

3 - Тепер спробуйте відкрити з діалоговим вікном ще раз

... Вибачте !!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.