Change background color of Windows 8 Start screen

Introduction

This sample shows how to change background color of a Windows 8 Start screen by using VBScript.

Scenarios

IT administrators can use this script to adjust the background color of a Windows 8 Start screen for a group of computers to keep user experience consistent.

Script

Notes:

1. The input integer value range for this script is between 0 and 24. Please refer to the following image to understand the meaning of each integer value.

2. There are 25 squares in the previous image. Each square represents a Windows 8 background color scheme. The values that are below each square represent its corresponding input integer value.

3. The current user must log off and log on again for these changes to take effect.

Step 1: In desktop mode, press the Windows key and R at the same time, to show the run command line.

Step 2: Run the VBScript in the Windows console and type the full path of the script at the command prompt. The script will generate a dialog box shown in the following figure.

Step 3: Type an integer value that is between 0 and 24. If you want to restore the background to its default color, just type “default” or 8.

Step 4: When the script runs successfully, a dialog box as shown in the following figure will appear. Click the “Yes” button to log off automatically. Otherwise, you will have to log off manually.

Step 5: After the current user logs in again, they will notice that the background color of Windows 8 Start screen has changed.

Here are some code snippets for your references. To get the complete script sample, please click the download button at the beginning of this page. 

VB Script
Edit|Remove
Function SetOSCWin8StartScreenBackColor(colorIndex) 
    If RegistryKeyExists(HKEY_CURRENT_USER,strWin8Key,"Accent"Then 
        ' If registry key exists then set value with user input. 
        objReg.SetDWORDValue HKEY_CURRENT_USER,strWin8Key & "\" & "Accent","ColorSet_Version3",colorIndex 
    Else 
        ' If registry key does not exist, create registry key and set value with user input. 
        objReg.CreateKey HKEY_CURRENT_USER, strWin8Key & "\" & "Accent" 
        objReg.SetDWORDValue HKEY_CURRENT_USER,strWin8Key & "\" & "Accent","ColorSet_Version3",colorIndex 
    End If 
     
    ' Require user confirm if log off now. 
    Dim logoffNow 
    logoffNow = MsgBox(REQUIRELOGOFF,4,"") 
    If logoffNow = 6 Then 
        For Each colItem In colItems 
            ' Force current user log off. 
            colItem.Win32Shutdown(4) 
        Next 
    Else 
        WScript.Echo REQUIRELOGOFFMANUALLY 
    End If 
End Function

Prerequisites

Windows 8

Additional Resources

Technical Resource:
http://www.autoitscript.com/forum/topic/145063-change-windows-8-start-metro-screen-background-color/ 
http://www.msfn.org/board/topic/159202-windows-logon-screen-background-color/ 
http://msdn.microsoft.com/en-us/library/windows/desktop/aa393297(v=vs.85).aspx