Цель состоит в том, чтобы файлы .jpg, .png, .tif и .raw всегда открывались в Photoshop CC 2015 и использовались соответствующие значки.

Вы можете обратиться к блок-схеме ниже о том, как Windows 10 выбирает значок для файла. Я придумал это, внеся изменения в реестр и наблюдая за результатами.
Проблемы
- Если расширение связано с типом файла, значок по умолчанию, определенный ключом расширения, игнорируется.
- Тип файла, определенный значением UserChoiceключаProgIdпереопределяет тип файла, определенный ключом расширения.
- UserChoiceключа- ProgIdравным- Application/Photoshop.exeпри установке Photoshop как приложения, которое всегда открыто для файлов .jpg и .png.
- Невозможно изменить значение UserChoiceключаProgIdиз-за новой безопасности хэша
- Не удается удалить ключ UserChoiceдля защищенных расширений, таких как .jpg и .png
Вопросы / Возможные решения
- Есть ли способ переопределить значок, определенный тип файла на уровне расширения?
- Есть ли способ переопределить тип файла, определенный ключом UserChoiceна уровне расширения?
- Что определяет, какое значение UserChoiceключаProgIdбудет установлено при настройке приложения, всегда открытого с помощью графического интерфейса, и почему .tif приводит к появлениюPhotoshop.TIFFFile.90то время как .png и .jpg приводят кApplication/Photoshop.exe?
- Есть ли способ создать хэш, необходимый для ключа UserChoice?
- Есть ли способ запретить Windows проверять / запрашивать хэш ключа UserChoice?
- Есть ли способ указать тип файла, как Photoshop.JPEGFile.90как всегда открытое приложение с использованием графического интерфейса?
- Есть ли способ остановить Windows от защиты / воссоздания ключей UserChoice?
Заметки
Изменения в реестре не вступят в силу, пока explorer.exe не будет перезапущен / обновлен. Вы можете использовать диспетчер задач, чтобы убить и перезапустить explorer.exe, или вы можете использовать DesktopRefresh.exe.
Ключ UserChoice может существовать в двух местах:
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice
- HKCU\SOFTWARE\Microsoft\Windows\Roaming\OpenWith\FileExts\.jpg\UserChoice
Если один не существует, другой используется. Поэтому обязательно удалите / измените их оба, если вы хотите внести изменения.
Примеры ключей:
- ключ расширения: HKCR\.jpg
- Тип файла ключа: HKCR\Photoshop.JPEGFile.90
- Ключ UserChoice:HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice
подробности
Когда Photoshop впервые был установлен, он связывал все расширения файлов, и все было замечательно. В какой-то момент я решил, что хочу всегда открывать файлы .png, .jpg, .tif и .raw в приложении Photos. Поэтому я: щелкните правой кнопкой мыши файл .png/.jpg/.tif/.raw -> Открыть с помощью -> Выбрать другое приложение -> Выбрать фотографии -> Отметьте «Всегда открывать .png файлы с помощью этого приложения». Теперь я хочу вернуться к открытию с Photoshop. Я сделал то же, что и раньше, ожидал, выбрал Photoshop в качестве приложения, чтобы всегда использовать Теперь файлы .jpg, .png, .tif и .raw открываются в Photoshop. Однако в файлах .tif отображается правильный значок, а в файлах .jpg, .png и .raw - значок Photoshop.exe.
Я попытался переустановить Photoshop, но это не помогло. Я пытался использовать Adobe Bridge для сброса ассоциаций файлов, но это тоже не помогло. Такие инструменты, как Диспетчер типов файлов и Редактор программ по умолчанию, не работают (я объясню почему ниже).
Затем я начал изучать, как Windows 10 выбирает значок, отображаемый для данного файла. Я научился:
- Если расширение связано с типом файла, используется значок, определенный этим ключом типа файла. В противном случае используется значок, определенный ключом расширения.
- Расширение может быть связано с типом файла двумя способами: если для расширения была установлена программа / приложение, всегда открытое с помощью, то программа / приложение используется в качестве типа файла для расширения. В противном случае тип файла может быть определен ключом расширения.
В моем случае для файлов .jpg, .png, .tif, .raw Photoshop установлен как приложение, всегда открытое с помощью. Это отражается в реестре через
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.raw\UserChoice
ключи. В этом разница между .tif и .jpg/.png/.raw. .tif имеет значение ProgId Photoshop.TIFFFile.90 тогда как .jpg, .png и .raw имеют Applications\Photoshop.exe . Это означает, что .tif правильно связан с Photoshop.TIFFFile.90 но .jpg .png и .raw связан с типом файла Applications\Photoshop.exe .
Я не могу просто поменять значок для типа файла Applications\Photoshop.exe потому что .jpg, .png и .raw все используют этот тип файла. Таким образом, один и тот же значок используется 3 расширениями. Я не могу указать уникальный значок для каждого расширения. Вот почему инструменты Диспетчер типов файлов и Редактор программ по умолчанию не работают. Они устанавливают DefaultIcon для типа файла в этом случае.
Решение казалось простым: изменить значение ProgId в ключах UserChoice для использования в Photoshop.JPEGFile.90 , Photoshop.PNGFile.90 и Photoshop.RAWFile.90 типы файлов. Это невозможно в Windows 10 больше. Новая мера безопасности добавляет значение Hash поставляемое значение ProgId в ключе UserChoice Только Windows знает, как генерировать этот хэш. Если хеш-код не соответствует значению ProgId , Windows сбрасывает / удаляет ключ UserChoice . Это позволяет установить это значение только через графический интерфейс Windows. Идея состоит в том, чтобы не дать вирусам / злоумышленникам возможность программно изменять всегда открытое приложение для расширений.  
Я понятия не имею, почему при выборе Photoshop в качестве приложения, которое всегда открыто, правильный ProgId был задан для .tif, но не для .jpg, .png и .raw, но это не представляется возможным исправить. В этот момент я начал смотреть на другие расширения, которые я не коснулся, как .tga. Я никогда не устанавливал всегда открытое приложение для .tga, поэтому у него не было ключа UserChoice . Вместо этого ключ расширения .tga определил связанный тип следующим образом:
[HKCR\.tga]
@="Photoshop.TGAFile.90"
Другое, казалось бы, простое решение: отмените приложение, всегда открытое с помощью удаления ключей UserChoice и определите тип файла на ключах расширения. Это работало для .raw, но не для .jpg и .png. Когда я удалил ключи UserChoice для .jpg и .png, я получил уведомление Windows с этой ошибкой: 
Приложение по умолчанию было сброшено
Приложение вызвало проблему с настройкой приложения по умолчанию для файлов .jpg, поэтому оно было сброшено до Фотографии
Я обновил реестр и, конечно же, ключ UserChoice вернулся. Оказывается, что Windows защищает некоторые расширения (например, .jpg и .png) и не позволяет удалить ключ UserChoice .
Поэтому мы не можем удалить ключ UserChoice , мы не можем обновить UserChoice.ProgId к правильному значению, и мы не можем переопределить тип файла, указанный UserChoice.ProgId ... что теперь?


