Почему определенные ассоциации приложений по умолчанию «заблокированы»?

13

После связывания моих файлов MP3 с MPlayer с помощью Open with/Choose default program...диалога, я больше не могу изменить эту связь с помощью указанного диалога, Always use this [...]флажок отныне всегда неактивен ( Control Panel -> Default Programs -> Associate a file type or protocol with a programне позволяет мне изменить его, кажется, что в любом случае я просто использую тот же диалог).

Это также произошло для файлов MP4, но не для MKV, например, и если я связываю свои файлы MP3 с другими приложениями, такими как VLC media player, он не блокируется. Почему это так, и могу ли я избежать этого заранее (к счастью, я уже знаю, как это исправить)?

Еще одна проблема: блокирующие программы (мне также удалось заблокировать их с помощью ассоциации с Visual Studio ) не отображаются в Recommended Programsдиалоге открытия с диалогом (и исследователь сказал: «Текущая программа не рекомендуется, но я выиграл не позволю тебе это изменить, ха! ").

Скриншот:

Скриншот

Как вы можете видеть в левом верхнем углу (если вы знаете значок MPlayer), файл в настоящее время связан с MPlayer.


Способы исправить это (примечание: этот вопрос не о том, как это исправить):

  1. Использование программ по умолчанию

    Панель управления -> Программы по умолчанию -> Установить программы по умолчанию , выберите WMP , выберите значения по умолчанию для этой программы , проверьте .mp3 .

    Это должно повторно связать файлы с проигрывателем Windows Media (WMP), и вы можете создать новую связь в проводнике Windows .

  2. Использование реестра (как всегда, держите его подальше, если вы не знаете, что делаете, или если у вас все в порядке со случайным взломом вашей системы):

    HKEY_CURRENT_USER -> Программное обеспечение -> Microsoft -> Windows -> CurrentVersion -> Explorer -> FileExts > .mp3

    Здесь вы можете, например, очистить open-with-list, и текущая программа по умолчанию, кажется, также сохранена здесь в ключе UserChoice. Там вы можете изменить ProgIdстроку на другое приложение и связать ее с WMP, введя WMP11.AssocFile.MP3или просто выбрав другое приложение сразу.

    Возможно, вам придется возиться с разрешениями на ключ, если вы не можете изменить ProgIdзначение.

(Поскольку у меня теперь есть три ответа, которые не отвечают на вопрос: этот вопрос не о том, чтобы заставить ассоциацию работать снова. Я не люблю бороться с симптомами, я предпочитаю лекарства).

HB
источник
Вы пытались удалить MPlayer с Revo ?
Harrymc
@HB: Ваши имена файлов действительно имеют расширения файлов, не так ли? (Я никогда не видел, чтобы этот флажок становился серым, за исключением случаев, когда имя файла не имеет расширения.) Скриншот флажка может быть полезен.
user541686 11.11.11
2
Почему вы добавили ответы на вопрос? удалить и опубликовать их как ответы?
Дорогой
2
@PriceChild: Вопрос не в том, как это изменить, прочитайте второй абзац, поэтому это не ответы .
HB
1
@Dracs: Это не мой вопрос, я хочу знать, почему это так , а не как это исправить.
HB

Ответы:

4

Кажется, что сообщение на форуме не может установить ассоциацию файлов - опция, выделенная серым цветом, имеет ответ:

В HKEY_CLASSES_ROOT \ Applications \ regedit.exe есть значение REG_SZ 0 с именем NoOpenWith

Проверьте, есть ли у вас это значение в вашем реестре.

Если так, то реальный вопрос: почему существует такое значение и какая программа его устанавливает?

kamaradclimber
источник
Соответствующий ключ не затрагивается, и даже если бы это было так, это было бы просто еще одним исправлением, которое далеко от того, о чем я здесь просил, «ключ реестра X был изменен», ничего не объясняет, это слишком далеко вниз по цепочке. событий.
HB
1
это было бы ключом к пониманию, потому что это означало бы, что конкретная программа специально заблокировала случай openwith (а не просто порочную ошибку)
kamaradclimber
Программы ничего не делают с этими ключами, только сама Windows, и почему это все еще остается загадкой ...
HB
У меня была похожая проблема, но с Outlook, удаление NoOpenWithиз HKEY_CLASSES_ROOT\Applications\Outlook.EXEрешило мою проблему.
Корин
1

MPlayer, вероятно, редактирует реестр, изменяя / создавая раздел реестра, который вы упомянули ранее (HKEY_CURRENT_USER> Программное обеспечение> Microsoft> Windows> CurrentVersion> Explorer> FileExts> .mp3).

Ниже я расскажу о двух разных вещах (одна из которых состоит из двух частей: метод A и метод B) для Windows Vista, 7 или Server 2008

Способ А

  1. Введите regedit в диалоговом окне RUN и нажмите Enter. Теперь перейдите:

    HKEY_CLASSES_ROOT\Unknown\shell\opendlg\command
    
  2. В правой части окна измените значение клавиши « По умолчанию » на следующее:

    %SystemRoot%\system32\rundll32.exe
    %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1 %2
    

    Примечание. Мы добавили только % 2 в конце значения по умолчанию. Вы можете использовать любое число от 2 до 9.

  3. Выйдите из редактора реестра и попробуйте открыть диалоговое окно «Открыть с помощью». Вы увидите, что флажок теперь отключен, как показано на следующем снимке экрана:

    Open_with_disabled.jpg

Метод Б

  1. Введите regedit в диалоговом окне RUN и нажмите Enter. Теперь перейдите:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    

    Если ключ «Explorer» отсутствует, создайте его вручную.

  2. Теперь на правой панели создайте новое значение DWORD NoFileAssociate и установите для него значение 1

  3. Выйдите из редактора реестра и попробуйте открыть диалоговое окно «Открыть с помощью». Вы увидите, что флажок полностью снят, как показано на следующем снимке экрана:

    Open_with_invisible.jpg

ПРИМЕЧАНИЕ. Как вы можете видеть, когда мы используем метод A для отключения флажка, диалоговое окно «Открыть с помощью» не показывает список рекомендуемых программ, который отображается при использовании метода B. Также, если вы видите последний скриншот Windows Vista Метод B полностью снимает флажок вместо его отключения.

БОНУСНЫЙ СОВЕТ: Это руководство также можно использовать в обратном порядке. например, если этот флажок уже отключен в вашей Windows, и вы хотите включить его, то вы можете удалить % 2, упомянутый в методе A, или установить значение DWORD равным 0, как указано в методе B.

ЧТО СМОТРЕТЬ НА 2: Чтобы предотвратить изменение раздела реестра, вы можете ограничить разрешения (вам может потребоваться сделать это после установки MPlayer).

Вот как:

  1. Перейдите к разделу реестра, который вы хотите изменить (и щелкните по нему).
  2. Нажмите Редактировать (в верхнем меню).
  3. Нажмите разрешения.
  4. Нажмите расширенный.
  5. Выберите соответствующую группу (напр. СИСТЕМА, АДМИНИСТРАТОРЫ (...)
  6. Нажмите изменить.
  7. Запретить разрешение «Задать значение».
  8. Нажмите OK ... и закройте все окна, которые вы только что открыли.
wizlog
источник
MPlayer - это «хорошая» программа, она, насколько я знаю, не работает с реестром, на самом деле все, что я делаю, - это установление ассоциации. Поэтому я не думаю, что это каким-либо образом отвечает на вопросы, и я сомневаюсь, что вы должны использовать изображения, на которых есть большой водяной знак авторского права с другого сайта.
HB
Единственный способ для программы изменить ассоциации файлов, это использовать реестр. Следуйте моему ответу, посмотрите, работает ли он.
wizlog
1
Ну, тогда с Mplayer должно быть что-то другое ... но я думаю, если вы все это знаете, не беспокойтесь о проверке разрешений.
Supercereal
1
@wizlog: я не ищу помощи , я ищу знания, но все здесь прыгали и хотели помочь , борясь с симптомами. Я очень хорошо знаю, как работает этот сайт, и если вы пропустите суть моего вопроса, я скажу вам об этом, и если вы все еще думаете, что ответили на вопрос адекватно, я ничего не могу с этим поделать.
HB
1
@wizlog: Это вопрос, он был там с самого начала, но люди, должно быть, не читали его. Я хочу знать, почему он блокируется и, возможно, как это предотвратить, мне не нужно исправление самой блокировки.
HB
0

Казалось бы, что-то блокирует раздел реестра, чтобы предотвратить его изменение.

Есть несколько возможностей: права доступа к ключу или ключам реестра принадлежат кому-то, кроме текущего пользователя (которые, вероятно, были бы установлены во время установки); что-то периодически запускается для проверки и сброса разрешений; или что-то активно отслеживает ключ (ы), чтобы предотвратить изменение.

Начните с изучения разрешений на ключ, чтобы увидеть, если это проблема с разрешениями. Возможно, вам придется запустить regedit от имени администратора. (Пуск-> введите regedit в поле поиска, затем щелкните правой кнопкой мыши и выберите «Запуск от имени администратора»). Там может быть что-то очевидное, например, ваша учетная запись пользователя не имеет доступа для записи. Добавьте соответствующие разрешения и посмотрите, решит ли это проблему.

Если этого не произойдет или разрешение исчезнет после перезагрузки или определенного периода времени, вам придется копать немного глубже. Я хотел бы начать с этой статьи , установить Process Monitor и включить ведение журнала загрузки. Это скажет вам, если что-то устанавливает ключ во время процесса загрузки. Если это периодический сброс, вы можете оставить монитор процесса включенным после того, как вручную измените значения реестра на то, что вы хотите, чтобы они отображали все, что мешает настройкам.

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

Крис
источник
Разрешения не должны быть проблемой, я проверил их до и после блокировки, и учетная запись пользователя никогда не задавала права для начала, это делается через систему, кажется. Кроме того, я сомневаюсь, что во время загрузки что-то происходит.
HB
Монитор процесса может быть полезен для отслеживания изменений, хотя ...
HB
1
Если у учетной записи пользователя нет прав на изменение ключей, поэтому флажок не установлен, нет? Если вы добавляете своего пользователя в разрешения для ключа, то он должен быть включен.
Крис
Нет, как я сказал, даже когда я могу установить флажок, моя учетная запись пользователя не имеет установленных прав на этот ключ, следовательно, это не должно иметь значения для ассоциации файлов. Я полагаю, что система сообщает ключу об изменении ключа через проводник, а система может изменить любой ключ.
HB
0

Я предполагаю, что MPlayer испортил ваш реестр в отношении содержимого и разрешений.

«Всегда использовать выбранное» может быть недоступно, потому что для изменения разрешений в реестре может потребоваться разрешение администратора. Чтобы проверить «Запуск от имени администратора» из командной строки (cmd), введите следующее:

%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL xxx.mp3

Это должно открыть диалоговое окно «Выбор программы по умолчанию» для фиктивного mp3-файла.

Убедитесь, что «Всегда использовать выбранное» больше не отображается серым цветом. Если это так, то на ваш вопрос ответили, и это результат честной ошибки MPlayer (или нет).

harrymc
источник
Ассоциация осуществляется с помощью системного диалога, поэтому MPlayer (или Visual Studio, который делает то же самое) должен иметь к этому какое-либо отношение, поле будет серым при вызове этой команды также как администратор. И если бы это было не так, все равно не объяснили бы, почему это происходит, поскольку это полностью в руках Windows.
HB
В этом случае Windows = Registry. Было бы неплохо узнать, как MPlayer портит реестр, но после этого поста я не смею его устанавливать. Вы должны действительно щелкнуть правой кнопкой мыши запись реестра mp3 и посмотреть, какие учетные записи авторизованы до и после установки MPlayer.
Harrymc
Я пропустил «нет» в своем комментарии, MPlayer ничего не делает, и, как и в случае с Microsoft Visual Studio, я сомневаюсь, что это случай «сомнительных программ, которые портят реестр». И, как отмечалось в другом месте, для UserChoiceключа моя учетная запись никогда не имеет установленных прав, независимо от того, могу ли я установить связь или нет (т.е. флажок неактивен).
HB
Это также происходит при загрузке в безопасном режиме? Если нет, то это вызвано некоторым запуском приложения и может быть найдено.
harrymc
-1

Давайте попробуем это:

  1. Откройте Regedit.exe
  2. Перейдите к подразделу HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts

  3. Прокрутите вниз и найдите расширение файла, с которым у вас возникли проблемы ( .mp3 ).

  4. Разверните его, чтобы просмотреть его подразделы.

  5. Найдите подраздел «UserChoice» и удалите его.

Повторите шаги с 3 по 5 для каждого расширения файла, вызывающего проблемы

Источник: ответ на вопрос переполнения стека. Как включить параметр «Всегда использовать выбранную программу для открытия файлов такого типа» в диалоговом окне «Открыть с помощью»? ,

user65130
источник
2
Это все еще не то, что я прошу здесь ...
HB