As you may have noticed, Microsoft has decided not to allow users to change the background in Windows 7 Starter. Several "solutions" exist to this problem but most of them are temporary, don't work at all, or require downloading software. The solution I have come up with is completely permanent and only requires slightly modifying one system file.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: How This Works
Microsoft has become increasingly sneaky when it comes to Windows restrictions. The file shell32.dll controls many visual attributes of windows such as the background image. On any other edition of windows, the user can open control panel and change the background by opening display properties or personalization settings and setting to what over their heart desires. Once they set the image and hit apply, it calls a function in shell32.dll that sets the background. In Windows 7 though, it is much different. The entire background change interface has been removed and the path to the default background image is hardcoded into the code of shell32.dll. The path hardcoded into shell32.dll is "%windir%\\Web\\Wallpaper\\Windows\\img0.jpg". The seemingly obvious solution to this problem is just to replace img0.jpg with your own custom image. But like I said, Microsoft has gotten sneaky. In shell32.dll there is also a hash of img0.dll to prevent it from being swapped with something else. For those of you that don't know, a hash is like a fingerprint of a file. Every file has its own completely unique fingerprint. Even changing one bit in a file would change it's fingerprint. Shell32.dll conatins a SHA256 hash of img0.jpg so if this file is changed or replaced, you get a black background. Unfortunantly though, Microsoft didn't anticipate the modification of system files. What we will do is change the name of the file hardcoded in shell32.dll to img1.jpg and we will replace the hash in shell32.dll with the one of our own image. This way windows thinks our new background is the default one and is more than happy to show it. To some of you this may seem very complicated but it should make more sense as you read the rest of the instructable.
Step 2: Gather Required Materials & Setup
You only need to download one thing:
XVI32 - THE BEST FREAKIN' HEX EDITOR ON THE PLANET
Once you have downloaded XVI32, create a tempory folder. Place XVI32, the image you want as your background, a copy of %windir%\Web\Wallpaper\Windows\img0.jpg, and a copy of
%windir%\Windows\system32\shell32.dll. Once you have them all it should look like this. Obviously this must be done on a computer with Windows 7 Starter edition. Also your new background must be a jpg.
Step 3: Hash Fun
Open notepad and type img0.jpg then a new line and then new image. Next goto http://www.hashemall.com and select SHA 256bit Algorithm. Then use the select a file to select img0.jpg and take the hash of it. Paste the hash under img0.jpg in the notepad you opened. Then repeat the process with your new image. Once you have the hashes in notepad, add a space after every two characters in both hashes. Make sure that you hashed it with the SHA 256bit option or the instructable won't work.
Step 4: The Second Hardest Part
Now comes the second hardest part, changing the hash and the name in shell32.dll. Open XVI32 and then open shell32.dll with it. Then click Search->Replace or press CTRL+R. Copy the first hash and paste it in the first hex box, then copy the second has and place it in the second hash box. Then press ok. Once you have replaced the hash, click Search->Find or press CTRL+F. Select text and type img0.jpg. Make sure to check the Unicode checkbox. Once it has found it, change the 0 to a 1. Now you can save it and your done with the hard part.
NOTE: Make sure to save the text file with the hashes in it so if you want to change the image you know what to replace in the dll.
Step 5: Copying Your New Image File
Copy your new image file to %windir%\\Web\Wallpaper\\Windows and change the name to img1.jpg. Be sure to type it in all lowercase.
Step 6: The Hardest Part - Replacing Shell32.dll
This is the hardest part becuase it involves using command prompt. Now that everything is in place (new image is in the %windir%\\Web\\Wallpaper\\Windows, shell32.dll has been modified) we can now replace the standard shell32.dll with the modified one. First open command prompt as administrator (Start->Search->cmd->Run as administrator). Then type takeown /F shell32.dll. Now open %windir%\\system32 and find shell32.dll. Rename it to shell32.dll1 and drag the modifed shell32.dll from your temporary folder into system32. Restart the computer. If everything went correctly, you should have your customized background. If you have a black background, goto to step 7. Otherwise, nice job!
Step 7: Troubleshooting
If you got a black screen there are several things that may have caused a problem. First make sure your image is named img1.jpg all lowercase and is in the %windir%\Web\Wallpaper\Windows folder. If that is all good, do the following. Right click on the desktop and click screen resolution. Then in the address bar, click the word Display which should be followed by an arrow then Screen Resolution. Then click the Change color scheme link on the left panel. Then in the color scheme box click Windows Classic and click apply. Finally select Windows 7 Basic hit apply,hit OK and your image should now be the wallpaper. If it is still black, carefully redo steps 3,4,5, and 6. If you still can't get it to work undo all of your changes and redo the instructable twice as carefully as you did the first time. If it still doesn't work ask for help in the comments section.