|I wrote this some time ago for Win95, but I just verified it and all went well under
Copy the file USER.EXE from your %Windows%\System directory to a tempoorary
directory. Using an icon editor that can read executables, open the copy of
USER.EXE. I'll explain the rest of the procedure with step by step instructions with
Microangeleo since that is the icon editor I use.
The Start Menu uses the flying windows logo, the very first icon in this file.
Double click on this icon which will open up an icon editor box. Drag the BSD icon
included here from wherever it is into the edit box for the logo. Now click
somewhere in the edit box (dumb but MA will not let you update the library otherwise).
Next select file->update library (or something to that effect). Save your
changes and exit. A quick browse with explorer of the user.exe file should now show
the BSD icon.
Good. You're ready to rock. Next, exit to DOS, backup the original file
again, but this time with a different name or to a different place, and then replace the
original with your modified version. When you restart Windows, you should have the
icon (I had to restart three times so it could happen to you too. The first time,
Windows went into safe mode, I just exited; the second time it lost the display driver
info so came up ugly. I changed it back and rebooted and all was back to normal,
except for the icon change of course).
|Harald Schmalzbauer wrote
in with this bit about how to get the daemon into NT.
Use usr32.dll instead of user.exe.
The 7th icon (Bitmap) is the flying window.
After modifying the DLL comes the problem. I thought that the easiest way would
be to distribute the new user32.dll with the service pack, but this doesn't work because
of the same thing why NT stops booting when files have been modified. NT
checks the imported files by verifying the checksum. The modification of the file to
put in a new image will alter the checksum for the DLL. But there is a
function called MapFilesAndCheckSum (see imagehlp, DDK) which can calculate the new
So when you open the user32.dll with QuickView, within the first 20 lines you see
a checksum. In service Pack 6 it is 0005a961. After I calculated the new
checksum (0005dff1), I replaced it the original checksum by using a hex editor.
That's it. Now NT doesn't complain that the file is corrupt while booting and
you can install it by extracting the service pack and replacing the file before running
Harald also supplied a checksum program. You can download it from samples/checksum.exe but use
it at your own risk.