Диалог "Открыть с помощью" игнорирует мой выбор

Я использую Windows 7 x64. У меня есть тип файла, который я хочу связать с Microsoft Access 2003.

Я щелкаю правой кнопкой мыши по файлу и выбираю Открыть с помощью> Выбрать программу по умолчанию. В диалоговом окне "Открыть с помощью" я выбираю кнопку обзора. Я выбираю Program Files (x86)\Microsoft Office\Office11\msaccess.exe и нажимаю "Открыть".

Я снова оказался в диалоговом окне "Открыть с помощью", но ничего не изменилось. Access не указан как программа для открытия файла. Исходная программа (Adobe Acrobat), связанная с этой программой, все еще выбрана.

Любые советы о том, как заставить эту ассоциацию работать?

9 ответов

Причиной, скорее всего, является странная ошибка в реестре, возникшая по неизвестной причине.

Убедитесь, что значение ключа в следующем месте содержит правильный путь:

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

Найдите имя приложения и расширение файла в реестре, чтобы проверить, не повреждены ли другие записи.

На самом деле это очень простая проблема. Это происходит потому, что Windows использует ассоциации, основанные исключительно на базовом исполняемом имени программы.

Всякий раз, когда вы связываете программу с расширением, программа будет присутствовать на HKEY_CLASSES_ROOT\Applications список, где имена ключей являются базовыми именами исполняемых файлов (например, MSACCESS.EXE а также AcroRD32.exe). Вы не можете связать другую программу с расширением файла, если она имеет такое же имя исполняемого файла. Случилось так, что вы, вероятно, переместили программное обеспечение в другое место (вы можете видеть, что это происходит в основном с переносными версиями программного обеспечения), и когда вы попытаетесь указать на него, Windows увидит, что имя уже зарегистрировано, и вместо этого попытается использовать зарегистрированное дорожка. Когда он не может найти это, он молча игнорирует ошибку и представляет диалог обратно без каких-либо изменений.

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

Раздел реестра, показанный выше, был моей проблемой.

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 непосредственно из списка доступных приложений.

У меня была похожая проблема с 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 с исполняемым файлом вашей программы.

Если все не удается, вы можете отредактировать реестр вручную (сначала сделайте резервную копию куста / ключа):

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

Или используйте FileAsoc, редактор файловых ассоциаций Windows

FileAsoc - бесплатная программа с открытым исходным кодом.

Или File Type Doctor, который является частью http://www.creativelement.com/powertools/ (условно-бесплатная)

альтернативный текст

Я исправил проблему для моего 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 является локализованной (немецкой) версией "Program Files". Это не имеет никакого смысла для меня (например, когда я нажимаю "копировать путь" в меню оболочки проводника Windows, путь содержит Program Files, И когда я добавляю Media Player, просматривая диалог "открыть с", он также добавляется с Program Files), но это сработало как решение, где просто удалить ключ reg не удалось.

Недавно у меня была похожая проблема со всеми ассоциациями моих медиафайлов, и, похоже, это из-за отвратительного медиаплеера под названием DAPlayer. Даже под Control Panel/Programs/Default Programs/Set Default ProgramsЯ не смог изменить программу по умолчанию. Видимо, это установило UserChoice ключи под HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts для всех своих файловых ассоциаций доступ только для чтения, даже для администраторов. Даже после удаления программы все мои ассоциации оставались в "Неизвестном приложении".

Самый простой способ исправить это - перейти к этому ключу в Regedit, щелкнуть его правой кнопкой мыши и выбрать "Разрешения", нажать кнопку "Дополнительно", установить флажок "Заменить все разрешения дочернего объекта" и нажать кнопку "ОК".

Или, если вы предпочитаете командную строку, вы можете использовать инструмент Windows Resource Kit под названием SubInACL:

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

Но будьте осторожны с такими массовыми операциями реестра, как это: неправильное использование может привести к неработоспособности вашей системы! Я не несу ответственности за ваши действия.

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

Панель управления -> Программы -> Программы по умолчанию -> Установить ассоциации

Или просто введите "Открыть файл" в меню "Пуск" и выберите "Сделать тип файла всегда открытым с определенной программой".

Хороший способ исправить это - удалить все записи, связанные с желаемым приложением.

Например:

Если файл.exe для размещения в списке " Открыть с помощью" - это NOTEPAD ++. EXE

1 - Откройте regedit и найдите для notepad ++. Exe

2 - Удалить все найденные записи

3 - Теперь попробуйте снова открыть диалог

... Блин!!

NirSoft часто спасает: http://www.nirsoft.net/utils/file_types_manager.html

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

Другие вопросы по тегам