Диалог "Открыть с помощью" игнорирует мой выбор
Я использую 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
диалог, независимо от того, что я сделал. Вот как я это решил.
- открыто
regedit
или любой редактор реестра. - Перейдите к:
\HKEY_CURRENT_USER\Software\Classes\Applications\sublime_text.exe\shell\open
, - Удалите все подключи.
- Создать подраздел
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.