Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   Как изменить иконку по умолчанию, для всех(!) ярлыков с потерянным exe (http://forum.oszone.net/showthread.php?t=340790)

blacks3 04-06-2019 14:35 2874330

Как изменить иконку по умолчанию, для всех(!) ярлыков с потерянным exe
 
Вложений: 1
Приветствую.
Всем доброго времени суток.

Задался задачкой:
- на рабочем столе w7 восстанавливаются ярлыки с иконками портированных программ
- но в случае если exe программы отсутствует, w7 подставляет свою бланковую иконку из shell32.dll для "побитого" ярлыка

Вопрос:
Возможно ли через правку реестра,
присвоить для всех потерявших exe ярлыков
свою собственно иконку, вместо бланковой/по умолчанию?

Подскажите пожалуйста ветку реестра / что необходимо прописать в ней.



Привожу пример картинкой:

1. рабочий стол с ярлыками на портированные программы
2. белые иконки - те ярлыки, exe которых не существует по лику в ярлыке
(пример желаемого результата, сделанный вручную)
3. слева ярлык Yandex - стандартное отображение иконки ярлыка с потерянной связи к exe


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

Один из вариантов решения изменить shell32.dll
И при восстановление системы заменять shell32.dll на свой
Но решение с правкой реестра более гибкое и правильное,
тем более при разных версиях винды (мало ли чего)

Спрашиваю совета, ищу решение правки через реестр.


Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!

Avatar-Lion 04-06-2019 15:11 2874336

Для Windows 7 на ум приходит только утилита Microangelo On Display (в Windows 10 не работает). Она умеет так делать путем редактирования кэша иконок (не shell32, а IconCache.db, который у пользователя в AppData хранится и генерируется динамически). Вот тут я для примера создал пустой exe-файл и ярлык для него, затем в опциях Microangelo On Display выбрал машинку вместо стандартной иконки:
Скрытый текст


Если же вручную прописать путь к конкретной иконке для .exe-файлов в соответствующей ветке реестра (HKEY_CLASSES_ROOT\exefile\DefaultIcon), то ВСЕ исполняемые файлы и ярлыки станут отображаться с такой иконкой. Даже те, которые до этого имели свою иконку. Так что через реестр не вариант, я так полагаю.

Алексектор 04-06-2019 20:52 2874402

Цитата:

Цитата blacks3
Спрашиваю совета, ищу решение правки через реестр. »

100% работает. https://ocompah.ru/vosstanovlenie-as...windows-7.html

blacks3 06-06-2019 08:14 2874555

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

blacks3 06-06-2019 09:38 2874567

гугля пространства
подумал, а не прав ли я, говоря о .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 2874574

Цитата:

Цитата blacks3
при необходимости очистки кеша иконок рабочего стола, как понимаю всё слетит? »

Хм... Честно говоря, как-то не проверял даже никогда это. :) Не было нужды просто. Так что на этот вопрос ответить не могу. А зачем вам кэш иконок очищать? Лично у меня потребности в этом никогда не возникало. А собственно, в чем проблема-то? Вы систему из образа восстанавливаете, я так понимаю? Ну сделайте образ после установки Microangelo On Display, когда она уже отредактирует кэш иконок.

Цитата:

Цитата blacks3
Плюс получается, в BAT/CMD файл настройку иконки для ярлыков-то не пропишешь »

Да, увы. На сколько мне известно, Microangelo On Display не поддерживает управление какими-то внешними заранее указанными командами. Да оно и не нужно в общем-то никому. Используется эта утилита редко и точечно, если так можно выразиться. Возможность массово менять значки - это у нее просто доп.опция, на моей памяти ни разу не приходилось к ней прибегать. Просто знал что она там есть.

---
В целом же я в вашей ситуации вижу только один вариант как можно обойтись без дополнительного ПО и как можно добиться некоей... м-м... универсализации, скажем так.
1) Выдёргиваем иконки из всех exe'шников, которые вам нужны. Все эти фотошопы и т.д. Я в свое время сохранял иконки с помощью Resource Hacker, но можете любую другую использовать.
2) Сохраняем все иконки куда-нибудь в системную папку. В общем, чтобы они гарантированно попали в образ, который вы будете потом снимать с системного раздела.
3) Вручную в свойствах каждого ярлыка меняем значок на аналогичный из нашей коллекции иконок.
4) ...
5) Profit!

В случае восстановления системы из образа значки у отсутствующих программ останутся, т.к. в плане иконок система для их ярлыков будет ссылаться не на exe'файлы, а на .ico-файлы, которые лежат где-нибудь на диске С и которые, соответственно, есть всегда.

Но вообще я бы на вашем месте не делал так, ибо при таком раскладе получается, что вы банально не сможете отличить настоящий ярлык от поддельного. И придется на каждом кликать и смотреть: запустится программа или нет. Короче, сомнительное удовольствие. Для чего вы вообще так делаете, если не секрет? Просто систему что ли часто переустанавливаете? Тогда вам имеет смысл ознакомиться с этой статьей: "Как настроить Windows, чтобы переустанавливать ее как можно реже".

Алексектор 06-06-2019 13:34 2874623

Цитата:

Цитата blacks3
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Explorer > FileExts > .exe
- нет никаких вариантов/намеков на то, как туда прописать иконку, не нашел =( »

Почему? Смотреть HKEY_CLASSES_ROOT. Там же ведь есть файл от ;OSZone.net готовый (Восстановление EXE файлов (приложения) - скачать)
И это не идёт? Тогда попробуйте программу Unassoc.

Avatar-Lion 06-06-2019 13:36 2874624

Алексектор, Не тупите. Человек спрашивал про изменение иконок. А вы ему зачем-то подсовываете статьи про восстановление ассоциаций файлов.

Алексектор 06-06-2019 13:43 2874626

Цитата:

Цитата Avatar-Lion
Не тупите »

Какой там... .
Цитата:

Цитата Avatar-Lion
Человек спрашивал про изменение иконок »

про идет про .lnk вот это идёт к ярлыкам. Если он ничего не нашел, пусть пробует ехе. Сами определяйте.

Avatar-Lion 06-06-2019 13:48 2874627

Цитата:

Цитата Алексектор
Сами определяйте »

Да я давно уже всё определил и понял чего он хочет, благо автор темы привел наглядную картинку в посте №1. Это вы зачем-то влезли в тему со способами восстановления ассоциаций файлов, хотя это тут вообще не при чем.

Алексектор 06-06-2019 13:52 2874628

Цитата:

Цитата Avatar-Lion
Это вы зачем-то влезли в тему со способами восстановления ассоциаций файлов, хотя это тут вообще не при чем. »

Ах да. вы же умнее всех! Делайте.

И вообще, а кто запретит мне писать? Еще не никого не обматерил.


Время: 19:44.

Время: 19:44.
© OSzone.net 2001-