3

Замечания:
Windows 10 машина, 64-битная.

Я использую FileTypesMan и успешно меняю иконки некоторых расширений:

Вот результат:

Все идет нормально. Но когда я дважды щелкаю файл, я выбираю Notepad++ в качестве программы по умолчанию, чтобы открыть файл:

И тогда все идет не так. Блокнот ++ захватывает значок. Все *.c файлы теперь отображаются со значком Notepad ++.

Как я могу предотвратить это от Notepad++?

1 ответ1

2

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

 

Препараты

1. Разрешения реестра
Откройте реестр Windos и дайте себе достаточно "прав" для папок HKEY_CLASSES_ROOT и HKEY_CURRENT_USER . Я сам не уверен, каковы минимальные настройки для всей процедуры, чтобы преуспеть. Вы должны немного поиграть с настройками. В любое время, когда вы получите сообщение об ошибке в предстоящей процедуре, вернитесь к этому шагу и увеличьте разрешения реестра.

2. Сделайте несколько пользовательских иконок
Сделайте несколько пользовательских значков, например, в папке C:\ICONS\ . Я использую следующий веб-сайт https://iconverticons.com/online/ для конвертации 256x256 png-файлов в ico-файлы.

3. Установить Блокнот ++
Просто получите Блокнот ++. Здесь нет ничего особенного.

4. Откройте терминал с правами администратора
Введите cmd в строке поиска Windows. Щелкните правой кнопкой мыши на появившемся CMD-значке и выберите "Запуск от имени администратора" во всплывающем окне.

 

Взлом реестра

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

Ниже описано, как назначить пользовательский значок, который вы создали в C:\ICONS\abcfile.ico для всех файлов *.abc .

1. Взлом реестра, часть первая
Первый ключ реестра, который вы должны добавить, - это HKEY_CLASSES_ROOT\.abc . Если этот ключ уже существует, вы можете удалить его. Используйте следующую команду для удаления ключа и всех его подразделов:

> REG DELETE HKEY_CLASSES_ROOT\.abc /f

На следующем рисунке показано, как мы будем (пере) создавать этот раздел реестра и все его подразделы:

Вы можете сделать это вручную или запустить следующие команды:

> REG ADD HKEY_CLASSES_ROOT\.abc /ve /t REG_SZ /d "abc_auto_file"
> REG ADD HKEY_CLASSES_ROOT\.abc /v BrowserFlags /t REG_DWORD /d 0x00000000
> REG ADD HKEY_CLASSES_ROOT\.abc /v EditFlags /t REG_DWORD /d 0x00000000
> REG ADD HKEY_CLASSES_ROOT\.abc /v PerceivedType /t REG_SZ /d "text"
> REG ADD HKEY_CLASSES_ROOT\.abc\DefaultIcon /ve /t REG_SZ /d "C:\ICONS\abcfile.ico,0"

2. Взлом реестра, часть вторая
Второй ключ реестра, который вы должны добавить, это HKEY_CLASSES_ROOT\abc_auto_file . Если этот ключ уже существует, вы можете удалить его. Используйте следующую команду для удаления ключа и всех его подразделов:

> REG DELETE HKEY_CLASSES_ROOT\abc_auto_file /f

На следующем рисунке показано, как мы будем (пере) создавать этот раздел реестра и все его подразделы:

Вы можете сделать это вручную или запустить следующие команды:

> REG ADD HKEY_CLASSES_ROOT\abc_auto_file /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\DefaultIcon /ve /t REG_SZ /d "C:\ICONS\abcfile.ico"
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\edit /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\edit\command /ve /t REG_EXPAND_SZ /d "\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"^%1\""
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\open /ve /t REG_SZ
> REG ADD HKEY_CLASSES_ROOT\abc_auto_file\shell\open\command /ve /t REG_EXPAND_SZ /d "\"C:\Program Files (x86)\Notepad++\notepad++.exe\" \"^%1\""

3. Взлом реестра, часть третья
Второй ключ реестра, который вы должны добавить, - это HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc . Если этот ключ уже существует, вы можете удалить его. Используйте следующую команду для удаления ключа и всех его подразделов:

> REG DELETE HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc /f

На следующем рисунке показано, как мы будем (пере) создавать этот раздел реестра и все его подразделы:

Вы можете сделать это вручную или запустить следующие команды:

> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithList /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /ve /t REG_SZ
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /v "C:\Program Files (x86)\Notepad++\notepad++.exe" /t REG_NONE /d 0
> REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\OpenWithProgids /v abc_auto_file /t REG_NONE /d 0

 

Обновить иконку кеша

Следующая команда должна обновить кэш значков Windows:

> %windir%\system32\ie4uinit.exe -show

 

Назначьте Notepad++ типу файла

Я заметил, что - иногда - изменения вступают в силу только после назначения Notepad++ в качестве программы по умолчанию для открытия типа файла. Вот как это сделать:

  • Создайте файл с указанным типом файла, например: myFile.abc
  • Щелкните правой кнопкой мыши файл и выберите "открыть с помощью" >> "другое приложение"
  • Вы должны получить всплывающее окно, как:
  • Выберите Notepad++ в качестве программы по умолчанию

 

Конец

Обычно значок изменился сейчас! И все файлы этого конкретного типа файла будут иметь пользовательский значок. Они будут открываться по умолчанию в Notepad++.

Возможно, вам следует снова обновить кэш иконок:

> %windir%\system32\ie4uinit.exe -show

или перезапустите систему, чтобы она вступила в силу (хотя перезапуск мне не понадобился).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .