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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Проблема с иконками в shell32.dll (http://forum.oszone.net/showthread.php?t=293960)

capricorn_avv 15-01-2015 14:05 2456397

Проблема с иконками в shell32.dll
 
Система Windows 7 x32 Ultimate. В shell32.dll около 300 иконок. При помощи Resource Hacker удалил ненужные мне группы иконок. Осталось около сотни. Теперь хочу на рабочем столе поменять иконку ярлыка одной программы. Захожу в свойства ярлыка>поменять значок. Как источник выбираю System32>shell32.dll. В окне предпросмотра вижу оставшиеся после чистки иконки. Выбираю нужную. Её изображение и появляется в свойствах ярлыка. Но когда нажимаю кнопку "применить", то на рабочем столе появляется совсем другая иконка. Она из тех, что я удалил из оригинальной shell32.dll. Получается, что на рабочий стол иконки попадают из старой нетронутой shell32.dll (хотя в System32 её уже нет), а не из окна предпросмотра иконок в свойствах ярлыка.
Где и что я мог недосмотреть? Поиск на системном диске находит только одну shell32.dll (новую урезанную). Windows>Rescache удалил, если что.

Dzirt2005 15-01-2015 14:40 2456420

capricorn_avv, какая цель сего гениального действия?

capricorn_avv 15-01-2015 15:15 2456449

Dzirt2005, Цель простая - оставить в shell32.dll только востребованные для меня иконки. И чтоб этот мой набор иконок правильно работал.
А по существу можете что-нибудь сказать?
Конечно, можно просто создать свою папку с иконками, и указывать её в качестве источника при выборе. Так оно работает. Но хочется именно в shell32.dll.

Blast 15-01-2015 15:24 2456457

capricorn_avv, а зачем корячить системные файлы для этого? Скопируйте shell32.dll, переименуйте в myicons.dll, удаляйте там все, что хочется и используйте myicons.dll для указания иконок в ярлыках и т.д.
С картинками: DLL File - Create with Customized Icons

capricorn_avv 15-01-2015 15:38 2456467

Blast, Спасибо. Так как Вы предлагаете всё работает. Но хочется именно "покорячить". А оно не корячится. Я не думаю, что системные ресурсы есть нечто неприкосновенное.

Blast 15-01-2015 15:44 2456473

Цитата:

Цитата capricorn_avv
Я не думаю, что системные ресурсы есть нечто неприкосновенное. »

Де-юре так и есть. Де-факто может привести к нестабильной работе системы или программ, в особенности при/после обновлений безопасности.
Вы конечно вольны делать что вам хочется. Возможно дублирование происходит еще и из-за shell32.dll.mui, или из-за того, что плывет нумерация иконок в библиотеке после вмешательства (хотя вряд ли).
Просто то, что вы хотите сделать несколько алогично, вы ведь не меняете иконки ежечасно, вам просто хочется один раз настроить так как нравится, почему бы не использовать для этого безопасный метод.

capricorn_avv 15-01-2015 16:17 2456488

Shell32.dll.mui это другой ресурс, там таких иконок, которые у меня появляются, нет. А про "алогично" соглашусь, конечно. Но я Вам признаюсь честно - меня теперь не столько иконки интересуют (пришлось их организовать таки в своей папке). Меня зло берёт, что я не могу понять, где система находит иконки, которые я поудалял из shell32.dll. Вроде и кэши поудалял (ну те, которые знаю).
А про нумерацию - что-то в этом есть. Действительно, иконки появляются вроде как из родной либы shell32.dll, (но которую я всё-таки удалил) со смещением в порядке следования на величину удалённых иконок. Хотя имена ресурсов я не менял.
Ладно, не буду вам морочить голову своими глупостями. Единственное, что меня утешает, так это то, что не один я не знаю. :)

STRELEC1 19-05-2020 22:37 2921800

Прошу знатоков пояснить, что такое номер и индекс иконки в *.Dll, так как в некоторых случаях встречаются иконки со знаком "-". Например, imageres.dll,120 или imageres.dll,-120.
Спасибо.

Iska 20-05-2020 20:22 2921910

STRELEC1, покажите скриншот, где встречаются «-».

domenix 08-06-2020 15:49 2924422

Цитата:

Цитата STRELEC1
Прошу знатоков пояснить, что такое номер и индекс иконки в *.Dll, так как в некоторых случаях встречаются иконки со знаком "-". Например, imageres.dll,120 или imageres.dll,-120.
Спасибо. »

Как объяснить в 2 словах ?? Номер и индекс иконки , индекс порядка в котором их (ресурсы пиктограммы ,курсоры,bitmap image ,акселераторы меню ,меню и др.) компилирует компоновщик (напр link xx. ) в секции ресурсы исполняемого файла или библиотеки runtime (динамической библиотеки), индекс порядка в котором они (ресурсы) объявляются для вызова API (напр. SetDilg@4:NEAR ,SetCursor@4: NEAR,SetIcon@4:Near и.мн.др) из других приложений . Хотите точнее читайте Пирогова B.Ю "Ассемблер для Windows" гл 2.4 "Понятие Ресурса и трансляторы ресурса ".

PS Не самая то лучшая идея пачить ресурсы системных runtime библиотек (динамических библиотек)
сторонними приложениями ,разработчики которых не позаботились о сохранности цифровой подписи издателя и SHA (контрольной суммы ) в изменяемых файлах которые ос периодически проверяет. (imho: imho: )

domenix 08-06-2020 16:45 2924428

Dzirt2005, Цель простая - оставить в shell32.dll только востребованные для меня иконки. И чтоб этот мой набор иконок правильно работал.
А по существу можете что-нибудь сказать?
Конечно, можно просто создать свою папку с иконками, и указывать её в качестве источника при выборе. Так оно работает. Но хочется именно в shell32.dll.

А решение просто скопировать из C:\Windows\System32 или C:\Windows\SysWOW64 библиотеки runtime imageres.dl и shell32.dll изменив их и редактором ресурсов как вам надо и переименовав напр imageres_сustomize.dll и shell32_сustomize.dll переместив в любую директорию и привязав значки директорий из диалога свойств контекстного меню Explorer не трогая при этом оригиналы Вас не устраивает ??

PS Именно примерно так я сделал в Winows 10 Pro и не то что-бы я ретроград и и фанат Windows 7 а мне просто категорически не нравятся плоские , не органичные пиктограммы (значки ) Windows 10 :(








Iska 08-06-2020 22:10 2924467

Цитата:

Цитата domenix
А по существу можете что-нибудь сказать? »

По существу — перестаньте маяться… ненужными вещами.


Время: 21:11.

Время: 21:11.
© OSzone.net 2001-