Windows 8 теряет параметры в меню «Открыть с помощью» после изменения сопоставления файлов

18

Когда я устанавливаю программу для открытия файла определенного типа по умолчанию, она работает (например, Word 2013 для файлов PDF). Однако, когда я изменяю значение по умолчанию обратно на читателя, я теряю Word как параметр, который я могу выбрать в open withподменю.

Как я могу заставить это придерживаться?

Кажется, в Word есть что-то особенное. Добавление Notepad ++ в качестве значения по умолчанию и последующее его изменение, похоже, сохраняют Notepad ++ в подменю.

Версия Word 2013.

В случае, если это не было ясно, я использую версию RTM (не предварительный просмотр).

soandos
источник
Вы пробовали «Связать тип файла или протокол с программой» из панели управления через «Программы по умолчанию»?
avirk
@avirk Предполагая, что вы имеете в виду просто установить его как значение по умолчанию, это работает (но не то, что идет не так, как надо). При изменении задней части по умолчанию Word удаляется как опция
soandos
Я думаю, что стоит попробовать.
avirk
Вы проверили, что значение вставляется в реестр по пути HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx\OpenWithList. Должен быть список программ, с которыми вы связываетесь для .docx или любого другого расширения, которое вы хотите проверить.
avirk
@avirk Очень странно. Он есть (как и Chrome, который также не отображается в списке), но программа по умолчанию для его открытия (читатель) не указана
soandos

Ответы:

4

Что такое Up!?!

Здравствуйте. Мне нравится, когда кто-то говорит;

"[...] как это отладить?"

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

Вызывая выстрелы

Исходя из вашего описания проблемы, я полагаю, что системе не удается записать правильные записи в реестре, поэтому при запуске «open» после ранее выполненного «open with ...» вы увидите приложение, которое вы выбрал в прошлый раз.

Я расскажу вам вашу проблему и докажу или опровергну мое первоначальное предположение. Если вам не нужны все мои подробности, представленные ниже, вы можете пропустить / просмотреть раздел «Разведка», где мы начинаем пытаться раскрыть проблему.

Быстрые исправления

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

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


Предположения

Это предположения, которые я предвижу. Если какой-либо из них находится далеко от базы, то, пожалуйста, дайте мне знать, и если потребуется, я найду время для установки Windows 8.

Реестр

Я думаю, что самое большое предположение, которое я делаю, состоит в том, что ОС все еще использует реестр, и для мест, где я привожу примеры, я предполагаю, что структура / структура каталога реестра в Windows 8 также похожа на свои предшественники.

Cmd.exe

Лично я часто предпочитаю командную строку, поэтому я, вероятно, опишу шаги в контексте терминальной сессии. Я предполагаю, что Windows 8 все еще имеет cmd.exe ; Я был бы очень удивлен, если бы это не так.

Редактор реестра

Если есть реестр, то, вероятно, есть инструмент для просмотра / редактирования реестра. Я предполагаю, что названия инструментов с графическим интерфейсом и командной строки такие же, как и в предыдущих версиях.

Права пользователя

Я предполагаю, что способы вызова оболочек с повышенными привилегиями достаточно похожи на предшественники ОС, и вы будете знать, что делать. Если я нахожусь за пределами базы, просто попросите меня проработать, и я сделаю все, что смогу.

SysInternals Suite

Я был бы крайне разочарован, если бы они не были доступны в Windows 8. Я не могу поверить, что они не были бы доступны, потому что они настолько фундаментальны для циклов разработки / контроля качества, что Microsoft и сторонние разработчики проходят.

WinDbg.exe, DDK и SDK

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

Recon

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

Если вы еще не загрузили и не установили The SysInternals Suite , то вам следует сделать это сейчас. По крайней мере, вам понадобятся Process Explorer и Process Monitor для первых попыток определить, что происходит не так. Оба эти инструмента являются частью пакета, который вы можете загрузить в виде * .zip-файла, но если у вас плохое сетевое соединение, вы можете загрузить два инструмента по отдельности, чтобы сделать это быстрее.

Разархивируйте пакет / инструменты в подходящее место в вашей системе (в основном ваши личные предпочтения). Если вы используете утилиту распаковки Windows по умолчанию, вам нужно удалить файл Zone перед разархивированием архива. Файл зоны , как операционная система знает «этот файл был загружен из Интернета [...] работать на свой страх и риск [...] снимите флажок , чтобы [...]». Я уверен, что вы видели сообщение, похожее на это во всплывающем окне раньше. Обычно в нижнем левом углу всплывающего окна есть небольшой флажок, который будет помнить ваше решение в будущем, если вы переключите его один раз.

Другой способ увидеть этот флажок - щелкнуть правой кнопкой мыши -> Свойства загруженного файла. Флажок должен быть внизу вкладки Общие . Если установить этот флажок один раз, будет удален файл зоны из двоичного файла (в качестве примечания, файл зоны хранится в альтернативном потоке данных рассматриваемого двоичного файла - но это другое обсуждение. Пока просто используйте всплывающие окна или интерфейсы свойств файла для манипулирования файлами зоны .

Убедитесь, что вы удалили файл зоны из архива * .zip, прежде чем распаковывать его с помощью стандартного инструмента Windows zip. Если вы не удалите его из файла * .zip, утилита ZIP пометит каждый распакованный файл файлом зоны, а затем будет трудно получить всплывающее окно для всех двоичных файлов, которые вы запускаете в комплекте.

Мы начнем с двух инструментов: * Process Explorer (procxp.exe) * Process Monitor (procmon.exe)

Вы можете сослаться на соответствующий файл * .chm, если хотите узнать о них больше. Мы собираемся начать с Process Explorer, и если мы не сможем быстро определить проблему, мы перейдем к Process Monitor (который немного сложнее запустить), и если мы все еще не можем решить проблему, мы поговорим о вытаскивании больших орудий. Дело в том, что я часто нахожу то, что мне нужно знать на этапе реконструкции, и мне не нужно запускать отладчик.

Фон и понимание

В реестре хранятся сопоставления, которые связывают расширения файлов с приложениями, которые знают, как с ними обращаться. Например, вы можете использовать инструменты командной строки ftype и assoc для просмотра / манипулирования отображениями расширений для приложений.

Чтобы увидеть тип файла, связанный с расширением «.txt», выполните следующую команду из терминала.

$> assoc .txt
.txt=txtfile

Это указывает на то, что расширение файла .txt назначено классу типов файлов txtfile . Затем, чтобы увидеть приложение, которое связано с классом txtfile , выполните команду

$> ftype txtfile
txtfile=%SystemRoot%\system32\notepad.exe %1

Эти инструменты просто читают настройки реестра для системы. Вы можете просмотреть их самостоятельно с помощью такого инструмента, как reg.exe, который вы выполняете с терминала, или большинство людей предпочли бы редактор реестра GUI regedit.exe . В этом месте вы увидите некоторые расширения, классы типов файлов и ассоциации приложений, которые вы просто найдете в кусте HKEY_CLASSES_ROOT. Прямо под этим кустом вы должны найти ключ как для «.txt», так и для «txtfile» и, конечно же, для многих других вещей.

Вот еще несколько примеров использования утилит assoc и ftype .


Удостоверьтесь, что вы кормите расширения на асс . Я думаю, вы уже знаете это, но для ясности расширения файла - это «точка, за которой следуют 3 или 4 символа», которые заканчивают имя файла. Например, application.exe , document.txt или Presentaion.ppt. Ассоциативная утилита ожидает от вас , чтобы обеспечить «» и 3/4 символа в качестве его параметра.

$> assoc .exe
.exe=exefile
$> assoc .txt
.txt=txtfile

Отдельно и отдельно от расширения файла существует тип файла . Несколько расширений файлов могут быть сгруппированы в один тип файла . Подумайте, как «.html» и «.htm» отображаются на один и тот же тип файла; то есть "htmlfile". Пример ниже пытается продемонстрировать этот момент дальше.

$> assoc .html
.exe=htmlfile
$> assoc .htm
.txt=htmlfile
$> ftype htmlfile
htmlfile="C:\Program Files (x86)\Internet Explorer\iexplorer.exe" -nohome

Кроме того, обратите внимание, что реестр содержит следующие ключи в кусте HKEY_CLASSES_ROOT.

  • HKCR.html
  • HKCR.htm
  • HKCR \ HTMLFILE

Если для вас есть удобный способ загрузить / прикрепить / отправить текстовый файл, выполните следующие команды, и я посмотрю на вывод, который они создают.

$> cd \somewhere\easy\for\you\to\find\
$> assoc > extension_associations.txt
$> ftype > filetype_handlers.txt

Теперь вы сможете открывать папки, в которые вы записали эти файлы, и делиться ими. Следующие команды также должны открывать файлы (если вы можете найти файлы, которые вы создали).

$> notepad \somewhere\easy\for\you\to\find\extension_associations.txt
$> notepad \somewhere\easy\for\you\to\find\filetype_handlers.txt

Если вы не можете поделиться со мной целыми * .txt файлами, то хотя бы выполните эти две команды и просто поместите их результаты в комментарии.

$> assoc .txt
.txt=textfile
$> ftype textfile
textfile="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"

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

Process Explorer

ТОДО при необходимости

Монитор процесса

ТОДО при необходимости

Установка сред отладки Windows

GuyHoozdis
источник
Три вещи: 1) спасибо за длинный ответ. 2) Я думаю, что происходит что-то еще, так как ftype говорит, что нет ничего связанного с каким-либо расширением, которое я к нему добавляю. 3) Программа, которую я хочу связать, - это Word 2013, которая является службой, а не exe-программой как таковой (или, если она есть, я понятия не имею, где она находится, диспетчер задач отображает работающую службу). Есть предположения?
Soandos
Нет проблем. Удостоверьтесь, что вы кормите расширения на асс . Я думаю, вы уже знаете это, но для ясности расширения файла - это «точка, за которой следуют 3 или 4 символа», которые заканчивают имя файла. Например, application.exe , document.txt или Presentaion.ppt. Ассоциативная утилита ожидает от вас , чтобы обеспечить «» и 3/4 символа в качестве его параметра. $> assoc .exe .exe = exefile $> assoc .txt
GuyHoozdis
ftype .txt выдает «Тип файла .txt» не найден или с ним не связана команда открытия ». например
soandos
Передача расширения файла в утилиту ftype неверна . Потратьте немного времени на обзор и на самом деле подготовьте себя, чтобы улучшить свое понимание ситуации, примеры команд, которые я написал в «ОБНОВЛЕНИИ» к исходному сообщению. После того, как сделать это, задайте себе этот вопрос « В чем разница между типом файла и расширение файла ? Если вы не знаете , прочитав мои примеры второй раз. Если он по- прежнему не имеет смысла, то мы будем стараться другой подход.
GuyHoozdis
У Windows нет терминала. Он имеет командную строку и команды не начинаются с $, как в системах Unix.
Elmo
1

Редактор программ по умолчанию может редактировать список «Открыть с помощью ...» в Windows 8:

File Type settings-> Change 'Open with' programs-> Выберите тип файла

редактор программ по умолчанию, открытый со списком

Добавьте любую программу, которую хотите «прикрепить», и нажмите «Сохранить».

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

Фактор Мистик
источник
Вы не против вставить скриншот перед этим? Я не могу найти это диалоговое окно
soandos
@soandos - это гиперссылка в левом нижнем углу экрана настроек типа файла
Factor Mystic
Я идиот, я не видел ссылку для скачивания
soandos
Как я могу добавить слово 2013? Это сервис, а не исполняемый файл
soandos
@soandos Он все еще установлен на вашем жестком диске. Для меня Word установлен наC:\Program Files\Microsoft Office 15\root\office15\winword.exe
Фактор Мистик
0

Делаю Открыть с помощью -> Выберите По умолчанию программы . Когда откроется окно, снимите флажок «Использовать это приложение для всех файлов .pdf и выберите Word, чтобы открыть его. Если его нет в списке, используйте ссылку« Искать другое приложение на этом ПК »внизу список.

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

Введите описание изображения здесь

Moab
источник
3
Это не так. Вот мой вопрос. Почему бы и нет?
Soandos
Вы используете RTM W8? Вы внимательно прочитали мои инструкции?
Моав
RTM и да. Я сделал другую программу по умолчанию, затем открыл ее словом, затем посмотрел на подменю «открыть». По-прежнему там не было (я говорю о немедленном меню, а не о «Выбор меню по умолчанию» без установки
флажка
Не уверен, что не так, работает на моем Windows 8 RTM. Эта информация хранится в реестре, скорее всего, в записи MRU.
Моав
Есть идеи, как его отладить?
Soandos