Показать полную графическую версию : Как изменить иконку по умолчанию, для всех(!) ярлыков с потерянным exe
Приветствую.
Всем доброго времени суток.
Задался задачкой:
- на рабочем столе w7 восстанавливаются ярлыки с иконками портированных программ
- но в случае если exe программы отсутствует, w7 подставляет свою бланковую иконку из shell32.dll для "побитого" ярлыка
Вопрос:
Возможно ли через правку реестра,
присвоить для всех потерявших exe ярлыков
свою собственно иконку, вместо бланковой/по умолчанию?
Подскажите пожалуйста ветку реестра / что необходимо прописать в ней.
Привожу пример картинкой:
1. рабочий стол с ярлыками на портированные программы
2. белые иконки - те ярлыки, exe которых не существует по лику в ярлыке
(пример желаемого результата, сделанный вручную)
3. слева ярлык Yandex - стандартное отображение иконки ярлыка с потерянной связи к exe
ПС
Да, можно пользоваться стандартными от виндовс
Но они уж очень убогие, а все программы будут восстановлены не сразу.
Один из вариантов решения изменить shell32.dll
И при восстановление системы заменять shell32.dll на свой
Но решение с правкой реестра более гибкое и правильное,
тем более при разных версиях винды (мало ли чего)
Спрашиваю совета, ищу решение правки через реестр.
Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!
Avatar-Lion
04-06-2019, 15:11
Для Windows 7 на ум приходит только утилита Microangelo On Display (в Windows 10 не работает). Она умеет так делать путем редактирования кэша иконок (не shell32, а IconCache.db, который у пользователя в AppData хранится и генерируется динамически). Вот тут я для примера создал пустой exe-файл и ярлык для него, затем в опциях Microangelo On Display выбрал машинку вместо стандартной иконки:
http://imagestun.com/hosting/kartinki/123tot.png
Если же вручную прописать путь к конкретной иконке для .exe-файлов в соответствующей ветке реестра (HKEY_CLASSES_ROOT\exefile\DefaultIcon), то ВСЕ исполняемые файлы и ярлыки станут отображаться с такой иконкой. Даже те, которые до этого имели свою иконку. Так что через реестр не вариант, я так полагаю.
Алексектор
04-06-2019, 20:52
Спрашиваю совета, ищу решение правки через реестр. »
100% работает. https://ocompah.ru/vosstanovlenie-associacij-exe-lnk-fajlov-v-windows-7.html
Avatar-Lion
Благодарю вас за скорый ответ!
Но при необходимости очистки кеша иконок рабочего стола, как понимаю всё слетит?...
Плюс получается, в BAT/CMD файл настройку иконки для ярлыков-то не пропишешь (только Microangelo)?
восстановил систему
--> ручками в Microangelo иконки, для красивого рабочего стола
---> а после, уже ставь программы которые потерялись...
(программ действительно много, потери возможны)
Если же вручную прописать путь к конкретной иконке для .exe-файлов в соответствующей ветке реестра (HKEY_CLASSES_ROOT\exefile\DefaultIcon), то ВСЕ исполняемые файлы и ярлыки станут отображаться с такой иконкой. Даже те, которые до этого имели свою иконку. Так что через реестр не вариант, я так полагаю.
- попробовал =)))
- сменил значение %1 на %2
- да... рабочий стол приобрел незабываемый вид ))
Горе-печать ((
Алексектор
Благодарю за помощь в теме! Но, вроде хоть статья по теме близкая но о другом: "Восстановление ассоциаций EXE файлов в Windows"
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Explorer > FileExts > .exe
- нет никаких вариантов/намеков на то, как туда прописать иконку, не нашел =(
PS
* и кстати "UserChoice" у меня вообще отсуствует...
а в OpenWithList вообще почему-то прописан wmplayer.exe
гугля пространства
подумал, а не прав ли я, говоря о .EXE?
- может нужно смотреть в сторону .LNK?
находил такие вот варианты...
но походу, даже меняя путь до иконки через HEX, меняя в ROOT, то всёравно заменит иконки на всех ликах-ярлыках, даже к которым уже есть иконка...
[HKEY_CLASSES_ROOT\.lnk\ShellNew]
"IconPath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,\
31,00,36,00,37,00,36,00,39,00,00,00
Avatar-Lion
06-06-2019, 10:36
при необходимости очистки кеша иконок рабочего стола, как понимаю всё слетит? »
Хм... Честно говоря, как-то не проверял даже никогда это. :) Не было нужды просто. Так что на этот вопрос ответить не могу. А зачем вам кэш иконок очищать? Лично у меня потребности в этом никогда не возникало. А собственно, в чем проблема-то? Вы систему из образа восстанавливаете, я так понимаю? Ну сделайте образ после установки Microangelo On Display, когда она уже отредактирует кэш иконок.
Плюс получается, в BAT/CMD файл настройку иконки для ярлыков-то не пропишешь »
Да, увы. На сколько мне известно, Microangelo On Display не поддерживает управление какими-то внешними заранее указанными командами. Да оно и не нужно в общем-то никому. Используется эта утилита редко и точечно, если так можно выразиться. Возможность массово менять значки - это у нее просто доп.опция, на моей памяти ни разу не приходилось к ней прибегать. Просто знал что она там есть.
---
В целом же я в вашей ситуации вижу только один вариант как можно обойтись без дополнительного ПО и как можно добиться некоей... м-м... универсализации, скажем так.
1) Выдёргиваем иконки из всех exe'шников, которые вам нужны. Все эти фотошопы и т.д. Я в свое время сохранял иконки с помощью Resource Hacker, но можете любую другую использовать.
2) Сохраняем все иконки куда-нибудь в системную папку. В общем, чтобы они гарантированно попали в образ, который вы будете потом снимать с системного раздела.
3) Вручную в свойствах каждого ярлыка меняем значок на аналогичный из нашей коллекции иконок.
4) ...
5) Profit!
В случае восстановления системы из образа значки у отсутствующих программ останутся, т.к. в плане иконок система для их ярлыков будет ссылаться не на exe'файлы, а на .ico-файлы, которые лежат где-нибудь на диске С и которые, соответственно, есть всегда.
Но вообще я бы на вашем месте не делал так, ибо при таком раскладе получается, что вы банально не сможете отличить настоящий ярлык от поддельного. И придется на каждом кликать и смотреть: запустится программа или нет. Короче, сомнительное удовольствие. Для чего вы вообще так делаете, если не секрет? Просто систему что ли часто переустанавливаете? Тогда вам имеет смысл ознакомиться с этой статьей: "Как настроить Windows, чтобы переустанавливать ее как можно реже (http://www.outsidethebox.ms/10899/)".
Алексектор
06-06-2019, 13:34
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Explorer > FileExts > .exe
- нет никаких вариантов/намеков на то, как туда прописать иконку, не нашел =( »
Почему? Смотреть HKEY_CLASSES_ROOT. Там же ведь есть файл от ;OSZone.net готовый (Восстановление EXE файлов (приложения) - скачать (https://ocompah.ru/2files/EXE.zip))
И это не идёт? Тогда попробуйте программу Unassoc.
Avatar-Lion
06-06-2019, 13:36
Алексектор, Не тупите. Человек спрашивал про изменение иконок. А вы ему зачем-то подсовываете статьи про восстановление ассоциаций файлов.
Алексектор
06-06-2019, 13:43
Не тупите » Какой там... .Человек спрашивал про изменение иконок » про идет про .lnk вот это идёт к ярлыкам. Если он ничего не нашел, пусть пробует ехе. Сами определяйте.
Avatar-Lion
06-06-2019, 13:48
Сами определяйте »
Да я давно уже всё определил и понял чего он хочет, благо автор темы привел наглядную картинку в посте №1. Это вы зачем-то влезли в тему со способами восстановления ассоциаций файлов, хотя это тут вообще не при чем.
Алексектор
06-06-2019, 13:52
Это вы зачем-то влезли в тему со способами восстановления ассоциаций файлов, хотя это тут вообще не при чем. »
Ах да. вы же умнее всех! Делайте.
И вообще, а кто запретит мне писать? Еще не никого не обматерил.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC