Windows 7 to officially support logon UI background customization

Posted: October 23, 2010 in Tips and Tricks, Windows, Windows 7

As you probably know, Windows 7 build 7057, a build recently leaked to the public, sports a new (yet ugly) login UI background. Delivering on the “more customizable” promise, Windows 7 now supports the ability to load images into the background of the login screen without the use of third-party software or manual hacks.

Figure 1 Logon UI background image before customization

Figure 2 Logon UI background image after customization

Although this functionality was designed with OEMs in mind, it is pretty easy to turn on and off using regedit and some images lying around your hard drive.

First, a check is made to determine if the customization functionality is enabled or not. More precisely, a DWORD value named OEMBackground in the HKLM\Software\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background key is checked. Its data, of Boolean type, defines whether or not this behavior is turned on, i.e. 1 for enabled, 0 for disabled. This value may not exist by default, depending on your system.

Afterwards, if customization is enabled, the primary monitor’s screen height and width are retrieved via calls to GetSystemMetrics. These values are used in the computation of the screen width (w)/height (h) ratio. For example, my desktop resolution is 1920×1200. The ratio, computed by the division of w/h, is 1.6:1.

The result of this computation is looked up in an internal table that drives what image to load on disk. Although I don’t have a large enough monitor to test, it appears resolutions higher than 1920×1200 will force the loading and zooming of an image of closest compatibility (i.e. same ratio, smaller image).

As this is an OEM feature images are derived from %windir%\system32\oobe\info\backgrounds. Like the registry value, this folder may not exist by default. The following files (sorted by width-to-height ratio) are supported in this folder:

•    backgroundDefault.jpg

•    background768x1280.jpg (0.6)

•    background900x1440.jpg (0.625)

•    background960x1280.jpg (0.75)

•    background1024x1280.jpg (0.8)

•    background1280x1024.jpg (1.25)

•    background1024x768.jpg (1.33-)

•    background1280x960.jpg (1.33-)

•    background1600x1200.jpg (1.33-)

•    background1440x900.jpg (1.6)

•    background1920x1200.jpg (1.6)

•    background1280x768.jpg (1.66-)

•    background1360x768.jpg (1.770833-)

NOTE: Images must be less than 256kb in size. Thanks for pushing me to investigate, Jay C.

The backgroundDefault.jpg image is loaded and stretched-to-fit when a resolution/ratio-specific background cannot be found. The other resolution/ratio-specific files are self-explanatory. If the background cannot be loaded (e.g. image physically too large, incorrect ratio, etc.), the default SKU-based image is loaded from imagesres.dll. You’ll see a Windows Server-themed grayish background in there, too, suggesting this functionality is not specific to client SKUs.

Leave a comment