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

1853
jippyjoe4

Я не совсем уверен, как это работает. Таким образом, я могу добавить элементы в «новое» контекстное меню (которое появляется при щелчке правой кнопкой мыши или нажатии кнопки меню) через редактор реестра. Например, если я хочу создать новую запись в файле .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" 

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

enter image description here

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

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

20
Это видео всегда стоит посмотреть для таких хакеров - https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-176-CMD-and-PowerShell-Context-Menus HelpingHand 6 лет назад 2

3 ответа на вопрос

22
Ben N

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

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

ShellNew entries

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

the file's icon is different from the New icon

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

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

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

Я удивлен, что REG_SZ работает с переменными окружения. Возможно, Explorer расширяет его снова. Bob 6 лет назад 1
@Bob За исключением преобразования набора символов для функций A, [тип значения не меняет поведение] (https://blogs.msdn.microsoft.com/oldnewthing/20090205-00/?p=19243) из RegQueryValueEx` , .NET Framework [сделает расширение] (https://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue%28v=vs.110%29.aspx) для значений `REG_EXPAND_SZ` по умолчанию, но базовый интерфейс Windows API этого не делает. Ben N 6 лет назад 0
4
DavidPostill

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

Да, с помощью диспетчера типов файлов от 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 6 лет назад 0
0
WinMike

Для записи: пустая строка должна быть добавлена ​​после первой строки («Редактор реестра 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 предполагают, что это также может быть представлено как ответ, так что я здесь. Может быть, один из этих модераторов может переместить его в зону комментариев вопроса (и одновременно отредактировать этот п.)? Спасибо!