Directory Icon does not change when using IconPackager

Hi,

I have changed and customized most of my windows XP system icons to 64x64 pixel (originally incorrectly posted as 64 bit) custom icons. While most of the changed icons are visible in Directory Opus, certain icons do not change, in spite of the changes I make to the standard directory icon (or folder icon).

I have tried changing the following registry keys that point to which icon should be displayed for directories:

  1. ShellIcon Key in the HKLM>>Software>>Microsoft>>Windows>>Current Version>>Explorer>>ShellIcons
  2. I have changed the Hkey_Classes_Root >> Folder >> Default Icon
  3. I have changed the Hkey_Classes_Root >> Directory >> Default Icon

In spite of all these changes, Directory OPus still displays the standard Shell32.dll Windows XP Default Yellow Icon for all directories.

WHAT SHOULD I DO TO CHANGE THE STANDARD WINDOWS XP DIRECTORY (OR FOLDER) ICON?

Thanks,
Santosh
India

Does this thread help?

[quote="Gardhul"]From Iconpackager, select under TOOLS menu, "Repair shell icons"; then add "DOpus.exe" at the presented programs list, then close the window. That's all.

Now, after applyed a new icon pack, just close DOpus from system tray icon, and re-launch it. NOTE: You DON'T NEED to force repair icons from Iconpackager for each pack change. Just close DOpus from systray and re-open it.[/quote]

Hey Santosh,

There's a few things you will want to double check. First off, go to preferences :: miscellaneous :: miscellaneous and look at the very bottom of the page (WindowBlinds compatibility mode). There are three options to choose from; checked, unchecked, or default. If it's in default it's kind of a greyed out checkmark. If it's enabled it will be checked. Here's a quick grab showing the Crystal SVG icons I'm using for folders...

It's very possible the changes are not working 100% in IconPackager as I've had problems with it in the past.

The horrid-yellow thumbnail folders I've never been able to replace... seems to be built into windows.


Ack! Smushed by the Nudel once again!

Nudel,

I am very thankful to your response. I tried the different options through your links, but they did not get the DO icons to change.

From Iconpackager, select under TOOLS menu, "Repair shell icons"; then add "DOpus.exe" at the presented programs list, then close the window. That's all.

This person talks of a feature in Iconpackager 3.10 enhanced version, but I use version 3.

Spr0ket:
I have changed the option to WindowBlinds mode, with the checkboxes marked the way you told me to..still no change.

Windows explorer displays all icons beautifully. I wonder if DOpus has got some icons hard coded to be picked up from shell32.dll, instead of the registry locations from where Windows explorer picks them.

Editing shell32.dll is not impossible, it is just that i use 64x64 pixel (originally incorrectly posted in this message as 64 bit icons) icons, which cannot be saved into the shell32.dll file. The allowed formats within shell32.dll are fixed.

I am sure DOpus can be changed to pick up icons from the registry..if 95% icons are picked up from the registry, why not the icons like "folder" icon or "default" icon???

If DOpus is picking icons from the registry, where in the registry?

The yellow standard folder icon in Windows is the icon in shell32.dll,4 where the offset of 4 is the fourth icon in the dll file. I suspect DOpus has got it hardcoded somewhere ..or maybe Windows itself has got this thing hardcoded somewhere and Directory opus is using that icon, instead of Windows Explorer's mannerism of picking from the registry.

How I wish someone knows the fix to it...

I don't know how the icon replacers work. Do they patch/intercept individual programs so that when they try to load an icon from shell32.dll they pick up another icon? Or do they change registry settings which Opus doesn't use?

My bet is it's more likely the former then the latter, since changing a setting in IconPackager to make it aware of dopus.exe makes it work with dopus.exe.

So perhaps most icon changers simply target Explorer.exe directly and it's no surprise that other things aren't changed? But I may be wrong. I've never investigated the mechanism.

I take it the enhanced version of IconPackager is more expensive than the version you have? (I've never looked at the program myself, just heard about it from other people.)

What are 64-bit icons, by the way? Do you have a 64-bit graphics card or something?

As I have a Objectdesktop subscription, I tought I'd test IconPackager (v. 3.11 Enhanced) with Dopus, and it does work for me as long as you exit Dopus completely after replacing the icons, so the icons are not "hard-coded."

[quote="nudel"]I don't know how the icon replacers work. Do they patch/intercept individual programs so that when they try to load an icon from shell32.dll they pick up another icon? Or do they change registry settings which Opus doesn't use?

My bet is it's more likely the former then the latter, since changing a setting in IconPackager to make it aware of dopus.exe makes it work with dopus.exe.[/quote]

Dead on I believe. At least according to the documentation and tutorials on WinCustomize.com it's a middleman type application sandwiched betwixt the OSI layers. The application does not replace or inject the icons into the executables.

Nudel,

The general mechanism of picking up an icon in Windows is through registry keys. Certain pre-defined keys in the registry define the icon files for different file types. If you open from windows explorer, Tools >> Folder options >> File types and look at all the file types, you can choose any file type and click Advanced and change the icon.

This is also possible when you right click DO in the system tray and choose file types..in fact DO brings up the same file types, with some enhanced UI, but essentially does the same.

This means, you can manually edit the icon associated with any file type by either of the two above interfaces, through windows explorer or DOpus..both operations write to the registry.

Registry entry:
An example of how windows handles icons in the registry follows.
Take a text file for example.
The registry entry defining it as a file type is at:
HKEY_CLASSES_ROOT.txt
(to get to this, type Run >> Regedit and expand the + symbol to expand the registry structure...the status bar in the registry editor will tell you exactly where you are in the registry...when you are in the above registry entry, your status bar will say,

My Computer\HKEY_CLASSES_ROOT.txt

When you look at the right side column in the registry editor, you will find several keys and their values. Look athe key called (Default). It's value in my computer is "txtfile".

Now, this string "txtfile" will be defined in another place in the registry where the icon associated with it will be specified. That entry is here:

\HKEY_CLASSES_ROOT\txtfile

And, your status bar will read:
My Computer\HKEY_CLASSES_ROOT\txtfile

One level below, you will see a sub-key called "DefaultIcon". Click it.

On the right hand panel in the editor, you will see a key called "(Default)" and its value will be an icon file location on your harddisk.

This in my machine is:
F:\IconPackage Packages\Big64Bit Nov06\Big64Bit Nov06.icl,63

It means i have a custom icon for all text files.

On a standard installations, you will probably find reference to:
....\shell32.dll,4

shell32.dll is the default place for icons. It is a collection of more than 200 icons, to which windows explorer refers to for all file icons.

But, explorer does not have hard coded references to shell32.dll, but it uses the registry to identify which icon to load for each file type. The default windows installation will have a registry reference to shell32.dll, whereas customizing programs like icon packager will change the references in the registry to custom file icons, instead of shell32.dll.

This logic works complete with windows explorer and to 95% of icons in DOpus too. However, for folder icons and default documents, ie ones without extensions or unknown extension, DO still displays the embedded shell32.dll icon reference..not the overridden icon from the registry.

64-bit icons:
The normal windows XP icon is a 32 bit icon. The size of the icon is small. When you view a directoryy in DO or explorer, in the TILE mode, you see bigger icons..these are 48 bit icons. When in list mode or detail mode, you see very small icons...they are 16 bit icons.

By changing the registy, you can have explorer or Dopus display standard icons as very large icons, by default. Instead of the normal 32x32 pixels, sized icons, you can see icons that are double the size. This will be teh 64x64 pixels icons. I have custom created icons that are 64x64.

If you look at the new linux distributions, you will find nice looking big icons which are kind of big. Typically they are 64x64..but they can be zoomed to even 128x128.

Upcoming Windows Vista will support huge icons upto 256x256 seamlessly, because it wil diretly use PNG image files, instead of the .ico files, that is used for icon files until Windows XP versions. Linux uses PNG files already.

I dont have a special VGA card..just the one that came with my mother board.

INTERCEPTING by icon packager:
I am trying to get a version of the 3.10 Icon packager. I currently have only the 3.0 version, which as far as I know simply makes only registry changes. Let me try to install the 3.10 version, when I get it and see if I figure out if there is an interception mechanism used, or is it all just registry entry replacement mechanism.

Santosh

[quote="santosh9999"]64-bit icons:
The normal windows XP icon is a 32 bit icon. The size of the icon is small. When you view a directoryy in DO or explorer, in the TILE mode, you see bigger icons..these are 48 bit icons. When in list mode or detail mode, you see very small icons...they are 16 bit icons.[/quote]

Bit refers to the color depth, not the size. You can have a 16x16 32bit image or a 256x256 2bit image (ie 256 pixels wide and tall but only four colors). Currently, the max bit depth I've seen is 40bit. The only way to get 40bit is when the images is saved as ten bit color guns at 10bit (65536 shades of each specific color). Those colors are marked as CMYK or Cyan (not the pepper), Magenta, Yellow, and Black. With 40bit, you can work with lighting depth like you wouldn't believe.

Spr0ket wrote:

Thanks for the detail on color bit depth. I meant to write that I use 64*64 pixel icons, not 64 bit.

Meanwhile, I have tried the Iconpackager 3.1 enhanced version, which still has not helped dopus to display custom folder icons.

There is a feature in Iconpackager 3.1 called "Repaid shell icons" to allow all process or specific processes to incorporate the icons that Iconpackager specifies. However, after using this option, I still dont find any change in DOpus icons.

In fact, I what exactly the option in Iconpackager "Repaid shell icons" do? It takes a second to specify this option..i dont find iconpackager doing anything at all..it hardly runs for a second...subsequent rebuiling of icon cache etc does not change Dopus icons either.

I edited my shell32.dll icons using Axialis Icon Workshop and have forced Dopus to get the icons i want to display..but that is not a 100% satisfactory fix. 48x48 pixels are only present in shell32.dll for folder icon, so in my setup of 64x64 pixels icons, Dopus (or any other program that would use these icons) zooms the 48x48 pixels into 64x64 pixels..result is not too bad...but one can make out the stretched out icons.

Nudel,
I suspect we still haven't identified the root cause or fix to this problem.

=Santosh

Dirhael,

I missed your post. You say Iconpackager works in replacing the standard DirectoryOpus folder icon (windows yellow icon) with custom icons?

Can you please post me a screenshot with one of those Iconpackager themes, working with DOpus? I would like to see a lot of folders in your screenshot, all with the custom folder icon.

Based on your screenshot, I will try to figure out what is wrong with my DOpus from working with Iconpackager 3.1 enhanced.

Yes, except that you cannot change the icon for folders (even though they have a filetype, the Change Icon button is ghosted in both Explorer and Opus) and you also cannot change the icon for unrecognised files (since they have no filetype, although in Opus they have a pseudo-filetype which lets you set a few things but not the icon).

I suspect that Explorer.exe, or rather the Shell API mechanism it calls to get icons, really does have a hardcoded link to the folder icons in Shell32.dll.

In fact Opus supports exactly the same icon changing and the same icon/filetype registry settings as Explorer. This isn't surprising since Opus asks the Windows Shell (i.e. Explorer) "what icon should I display for this file?" whenever it needs an icon. Opus itself does not have a hardcoded link to the Shell32.dll icons; it just asks the OS for an icon and the OS gives it one.

I don't know why Microsoft decided that you shouldn't be able to change the Folder filetype's default icon, nor why they didn't think people might want to change the default icons for unrecognised files, but that's how the system works.

Ideally, the system in Windows/Explorer wouldn't be so crap. Failing that, maybe Opus should have its own system on top of Explorer's so that these icons could be overridden via Opus-specific settings. (Though there would still be other icons people might want to customize that don't even fit the filetypes idea, like Network Neighborhood or whatever.)

Anyway, right now the only solution is to get one of the programs which patch Explorer.exe while it's running to also patch dopus.exe. Seems like Icon Packager does work, at least for other people.

When you tried Icon Packager, did you follow these steps exactly, including adding dopus.exe to the list and restarting Opus?:

[quote="Gardhul"]From Iconpackager, select under TOOLS menu, "Repair shell icons"; then add "DOpus.exe" at the presented programs list, then close the window. That's all.

Now, after applyed a new icon pack, just close DOpus from system tray icon, and re-launch it. NOTE: You DON'T NEED to force repair icons from Iconpackager for each pack change. Just close DOpus from systray and re-open it.[/quote]

Nudel,

I did exactly like the suggestion. No change to Dopus icons. I will wait for the screenshot from Dirhael.

[quote="santosh9999"]Dirhael,

I missed your post. You say Iconpackager works in replacing the standard DirectoryOpus folder icon (windows yellow icon) with custom icons?

Can you please post me a screenshot with one of those Iconpackager themes, working with DOpus? I would like to see a lot of folders in your screenshot, all with the custom folder icon.

Based on your screenshot, I will try to figure out what is wrong with my DOpus from working with Iconpackager 3.1 enhanced.[/quote]

Sure, no problem :slight_smile:

The second screenshot is the default XP look (well, I've patched shell32.dll with new icons, but still haven't used Iconpackager). The other screen is taken right after applying the IP Crystal theme (comes with IP). In both screens I'm using 48px icons. Does this help, or do you need more screens?




Dirhael,

Thanks for the screenshots.

After trying my best, I end up not managing to change the following two icons on directory Opus:

  1. Default application icon (for .exe files that dont have an embedded icon)
  2. Directory icon

I managed to change all icons without icon packager or any other software.

These are my conclusions:

  1. Windows explorer fetches icons from the registry entry:
    HKEY_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons
    whereas, Directory Opus will not do so.
    Folder icon is overriden in the above registry entry, which enables Windows explorer to display the customer folder icon. But Directory opus does not pick it up.
  2. There are two other registry keys:
    HKEY_Classes_Root\Folder
    KEY_Classes_Root\Directory
    There are the "proper" locations from where a directory's icon must be picked from. Changes to these two keys impacted neither Windows explorer not DOpus.

I vaguely remember that the entries in point 2 had enabled me to change my windows explorer folder icons sometime ago.

I think, due to a lot of fiddling with the regsitryy and usage of IconPackager and everything else in between, my registry is totally messed up. I am giving this up at the moment. Will perhaps re-install Windows on a separate drive later and try the whole process again.

Thank you all for your support. You have been more than helpful..i suppose the ideas did not work for me because of my system's current registry state.

All:

Just when I had ended up my quest to resolve this, I found the answer to my problem, right off the DOpus website:

gpsoft.com.au/History8.html

[quote]Miscellaneous changes and bug fixes for 8.2.2.4 (23 August July 2006)

* SFTP - enabled setting of Network and Display preferences for SSH connections.
* FTP – Changed link handling routines to better estimate whether the link is to a folder or file.
* FTP/ SFTP Added support for Owner and Group fields. To use, just add the Owner and Group columns to the FTP Lister display format.
* Custom icon routines shown to cause anomalies on some systems when the system ShellIconLIst was accessed. Custom icon routines are now DISABLED by default with the Registry variable below. If you wish to enable support for Custom icons, delete this registry variable.
* Updated support for Nokia PC Suite 6.8.22
* Fixed a problem with initial display of icons in Explorer-style Icon and List view modes.

[/quote]

I haven't seen this problem yet, I hope DO will put a permanent fix on this one in the next releases.

Final status:
Problem Resloved. Delete the registry key referred above

Sounds strange though, as I haven't touched that registry key, yet custom icons works for me I (as you can see in the screenshots I've previously posted). I also just checked if I had that registry key set in case some registry cleaner had removed it, but it's still there with a value of "1" ...