Я не совсем уверен, как это работает. Таким образом, я могу добавить элементы в «новое» контекстное меню (которое появляется при щелчке правой кнопкой мыши или нажатии кнопки меню) через редактор реестра. Например, если я хочу создать новую запись в файле .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 этот рисунок автоматически на основе какой-либо программы, которую я установил в качестве значения по умолчанию для этого расширения, или это можно будет каким-то образом установить вручную в реестре.
Можно ли установить этот значок вручную?
источник
Ответы:
По умолчанию Explorer использует значок, заданный типом файла, но это можно изменить, указав
IconPath
значение вShellNew
ключе. Я понял это с помощью Process Monitor, чтобы отслеживать активность реестраexplorer.exe
.Похоже, что существующие записи Windows используют
REG_EXPAND_SZ
тип данных, ноREG_SZ
работают одинаково хорошо и их гораздо легче включить в файл REG. Формат представляет собой полный путь к файлу, содержащему значок, затем запятую, а затем номер ресурса значка в файле. На этом скриншоте я использовал%ProgramFiles%\Windows Mail\wab.exe,10
:Как видите, это не влияет на значок файла за пределами нового списка:
Чтобы включить это изменение в ваш REG-файл, добавьте эту строку прямо под строкой
"NullFile"=""
:Вам нужно будет перезапустить Проводник, чтобы изменения вступили в силу.
источник
REG_SZ
работает с переменными среды. Возможно, Explorer расширяет его снова.RegQueryValueEx
. .NET Framework будет делать расширение дляREG_EXPAND_SZ
значений по умолчанию, но лежащая в основе Windows API не делает.Можно ли установить этот значок вручную?
Да, используя диспетчер типов файлов от NirSoft :
О диспетчере типов файлов
Source FileTypesMan - альтернатива менеджеру типов файлов Windows
Подробные инструкции
Источник Как изменить значок для определенного типа файла в Windows
отказ
Я никоим образом не связан с NirSoft , я просто конечный пользователь их программного обеспечения.
источник
Для записи: пустая строка должна быть добавлена после первой строки («Редактор реестра 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 предполагают, что это также может быть представлено в качестве ответа, так что здесь я иду. Может быть, один из этих модераторов может переместить его в зону комментариев вопроса (и одновременно отредактировать этот п.)? Спасибо!
источник