Make a copy of shell32.dll, import it into Microangelo's Librarian, edit
any
existing shell32 icons into whatever you want, save, exit, replace the
real
shell32.dll with your modified copy. Works for me :^)
That has several dangerous dissadvantages:
- Shell32.dll might contain some other resources or actual code that might
be somehow modified during the edition, remember that file is used by the
Windows shell, non working shell32.dll might means a non working Windows (or
some features of the explorer not working at least).
- You're modifying a file that might be patched by Windows Update, imagine
the file you have modified contains everything to work, but is structured a
bit differently inside, what happens when we patch only a part of that file
(like a path needs to replace the byte 12545 to 0xF2) ? you might have a
patch writing into a resource or other piece of code because the file is not
what it expected to be and break it (I guess Microsoft checks the file
before patching, but wouldn't take the chance of breaking my system to test
it).
- If the whole file is replaced by a newer one by a patch, you lose your
modified icons.
Now a solution would be to modify a renamed copy of shell32.dll like
myiconslib.dll, then you can basically replace the icons inside it and not
worry about other resources, but this again has several dissadvantages:
- You're wasting space for other resources and code included in that file
that you're not using (and that's not only disk space, as it loads in RAM as
soon as it needs to load an icon from it).
- You have to follow the organisation of the icons that Microsoft used in
shell32.dll, which makes it hard to insert an icon between two other ones
when you wan to keep things organized inside.
So I still think the best is a folder with .ico files, or for better
organisation, a clean .dll containing icons related to each other (like a
theme) but no other resources from editing hacks.
Just to show how easy it is from a starting skeleton project with Visual
C++, here are the step by step instructions to add an icon to the starting
project I did for Windows Mobile:
---------------->
To insert or import icons, right-click the "IconsLib resources" item in the
ResourceView pane and
select Insert... or Import...
Note that to support different sized and colors depths, you should NOT
create a new icon for each,
but instead insert a new image in the existing icon (using the menu with the
same name).
Once your library is ready, complete the version information in the
VS_VERSION_INFO (still from
the ResourceView pane) and Build it.
<----------------
As I said, I think anyone can do it, even without any programming knowledge,
and it gives you a clean custom "icon library" dll.