Что определяет значок для записей в новом контекстном меню?

20

Я не совсем уверен, как это работает. Таким образом, я могу добавить элементы в «новое» контекстное меню (которое появляется при щелчке правой кнопкой мыши или нажатии кнопки меню) через редактор реестра. Например, если я хочу создать новую запись в файле .cpp, я могу импортировать файл .reg, который выглядит следующим образом:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.cpp]
@="cpp"
[HKEY_CLASSES_ROOT\.cpp\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\cpp]
@="C++ File"

Таким образом, я могу установить расширение и описание, которое появляется для него, используя этот метод. Однако я не уверен, как определяется значок, который появляется рядом с моим описанием. Это то, что я имею в виду:

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

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

Можно ли установить этот значок вручную?

jippyjoe4
источник
2
Это видео всегда стоит смотреть на такую повозку , запряженные вол - channel9.msdn.com/Shows/Defrag-Tools/...
HelpingHand

Ответы:

22

По умолчанию Explorer использует значок, заданный типом файла, но это можно изменить, указав IconPathзначение в ShellNewключе. Я понял это с помощью Process Monitor, чтобы отслеживать активность реестра explorer.exe.

Похоже, что существующие записи Windows используют REG_EXPAND_SZтип данных, но REG_SZработают одинаково хорошо и их гораздо легче включить в файл REG. Формат представляет собой полный путь к файлу, содержащему значок, затем запятую, а затем номер ресурса значка в файле. На этом скриншоте я использовал %ProgramFiles%\Windows Mail\wab.exe,10:

ShellNew записи

Как видите, это не влияет на значок файла за пределами нового списка:

значок файла отличается от значка New

Чтобы включить это изменение в ваш REG-файл, добавьте эту строку прямо под строкой "NullFile"="":

"IconPath"="%ProgramFiles%\\Windows Mail\\wab.exe,10"

Вам нужно будет перезапустить Проводник, чтобы изменения вступили в силу.

Бен Н
источник
1
Я удивлен, что REG_SZработает с переменными среды. Возможно, Explorer расширяет его снова.
Боб
Для преобразования набора символов для функций A @Bob за исключением того , тип значения не изменяет поведение в RegQueryValueEx. .NET Framework будет делать расширение для REG_EXPAND_SZзначений по умолчанию, но лежащая в основе Windows API не делает.
Бен Н
4

Можно ли установить этот значок вручную?

Да, используя диспетчер типов файлов от NirSoft :

О диспетчере типов файлов

FileTypesMan является альтернативой вкладке «Типы файлов» в «Параметры папки» Windows. Он отображает список всех расширений и типов файлов, зарегистрированных на вашем компьютере. Для каждого типа файла отображается следующая информация: имя типа, описание, тип MIME, воспринимаемый тип, флаги, флаги браузера и т. Д. FileTypesMan также позволяет вам легко редактировать свойства и флаги каждого типа файлов, а также добавлять, редактировать и удалять действия в типе файла.

Системные Требования

Эта утилита работает в любой версии Windows, от Windows 98 до Windows 10. Для использования этой утилиты в Windows 98 / ME необходимо загрузить версию, отличную от Unicode. Для использования этой утилиты в системе x64 вам необходимо скачать версию x64.

Source FileTypesMan - альтернатива менеджеру типов файлов Windows


Подробные инструкции

Первое, что вам нужно сделать, это загрузить копию диспетчера типов файлов. Он работает практически во всех версиях Windows, но обратите внимание на то, нужна ли вам 32- или 64-разрядная версия. Если вы не уверены, вот как определить 32-разрядную или 64-разрядную версию Windows.

Когда загрузка закончится, разархивируйте папку. Это портативное приложение, поэтому вам не нужно его устанавливать - просто дважды щелкните «FileTypesMan.exe», чтобы начать работу.

fte_1

Щелкните заголовок столбца «Значок по умолчанию», чтобы отсортировать список по значку по умолчанию. Обратите внимание, что для нашего скриншота мы спрятали несколько столбцов, чтобы их было легче увидеть. Вы можете найти столбец «Значок по умолчанию» далее справа. Это объединяет все расширения файлов, которые уже имеют один и тот же значок. Это удобно, если вы хотите изменить несколько связанных типов файлов, использующих один и тот же значок. Если вы намереваетесь изменить только один тип файла, смело сортируйте по расширению или имени типа.

fte_2

Чтобы сохранить некоторую прокрутку, мы будем использовать функцию find, чтобы добраться до нужного нам типа файла. Нажмите кнопку «Найти» на панели инструментов (или нажмите Ctrl + F). В окне «Найти» введите расширение для типа файла, который вы хотите изменить, и затем нажимайте кнопку «Найти далее» несколько раз, пока не получите нужное расширение. Затем вы можете нажать «Отмена», чтобы закрыть окно «Найти».

fte_3

Щелкните правой кнопкой мыши расширение, значок которого вы хотите изменить, и выберите «Изменить выбранный тип файла».

fte_4

В окне «Изменить тип файла» нажмите кнопку «…» справа от текстового поля «Значок по умолчанию».

fte_5

В окне «Изменить значок» отображаются некоторые основные значки, но нажмите кнопку «Обзор», чтобы найти собственные файлы значков. Диспетчер типов файлов позволяет выбирать файлы EXE, DLL или ICO.

fte_6

После того, как вы нашли и выбрали нужный файл значков, в списке появятся доступные значки. Выберите нужный значок из списка и нажмите «ОК». В этом примере мы используем файлы значков, которые мы загрузили из IconArchive, поэтому отображается только один значок. Если вы используете файл EXE или DLL, вы можете увидеть намного больше значков, чем с файлом ICO.

fte_7

Если вам нужно изменить значок для нескольких типов файлов, вам просто нужно повторить эти шаги. И когда вы закончите, вы можете закрыть File Type Manager и открыть окно File Explorer, чтобы проверить ваши изменения. В нашем примере мы изменили значки для типов файлов GIF и PNG - два типа файлов изображений, которые мы часто используем, - чтобы их было легче различать. Раньше все файлы изображений использовали один и тот же значок - значок по умолчанию для нашего приложения для просмотра изображений.

fte_8

Источник Как изменить значок для определенного типа файла в Windows


отказ

Я никоим образом не связан с NirSoft , я просто конечный пользователь их программного обеспечения.

ДэвидПостилл
источник
Обратите внимание, что это меняет значок типа файла для всей системы. Это полезная программа, хотя.
MoonRunestar
0

Для записи: пустая строка должна быть добавлена ​​после первой строки («Редактор реестра Windows версия 5.00») файла * .reg, иначе при выполнении будет выдана ошибка. См .: https://support.microsoft.com/en-us/help/310516/how-to-add-modify-or-delete-registry-subkeys-and-values-by-using-a-reg#syntax для детали синтаксиса.

Кстати, это не совсем ответ на вопрос, но, будучи новичком здесь, я не могу комментировать. Но модераторы @robinCTS и @bertieb предполагают, что это также может быть представлено в качестве ответа, так что здесь я иду. Может быть, один из этих модераторов может переместить его в зону комментариев вопроса (и одновременно отредактировать этот п.)? Спасибо!

WinMike
источник