Sign in to follow this  
Followers 0
Ken@fri

[Trick] How to Set Windows theme from command line

3 posts in this topic

For a theme addon, based on moataz Royal AIO theme, I was looking for how to select a particular theme from the command line or script with no user interaction.

The following command works rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"%windir%\\resources\\themes\\Royal AIO.theme, but it shows a confirmation box with button. I want to run this SILENTLY with the assumed answer "yes".

After googling during a week, I finally found how to do it >>>HERE<<<

original_setTheme_script.png

Little mods in the script to set theme dir dynamically & increase time sleep,


objShell.Run('rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"%windir%\\resources\\themes\\%YOUR_THEME_NAME%.theme"',1);

WScript.Sleep(2000);

AND.... :

//===================================================================

// FILE: theme.js

// DESCRIPTION: automatically set the Windows theme

//===================================================================

// create shell object

objShell = new ActiveXObject("WScript.Shell");

// start themes applet, load desired theme, and activate this window

objShell.Run('rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"%windir%\\resources\\themes\\Royal AIO.theme"',1);

// wait for themes window

WScript.Sleep(2000);

// send the 'enter' key to accept this theme

objShell.Sendkeys("{ENTER}");

To use it, just create a new .txt file, copy-past script above & save as .js file (like theme.js)

This is how I apply it in my INF file :

[DefaultInstall]

RegisterDlls=Launch.RoyalistTheme.Install

[Launch.RoyalistTheme.Install]

11,,rundll32.exe,,,"advpack.dll,LaunchINFSection ""%01%\RoyalTem.inf"",Install"

[install]

BeginPrompt = ...

RunPreSetupCommands = Create.i386:1

CopyFiles = ...

AddReg = ...

UpdateInis = ...

RunPostSetupCommands= SetRoyalistTheme.AsDefaultTheme

EndPrompt = ...

[setRoyalistTheme.AsDefaultTheme]

RUNDLL32 advpack.dll,LaunchINFSection ""%01%\RoyalTem.inf"",Default.Theme.Choice"

[Default.Theme.Choice]

BeginPrompt = RoyalistThemeChoicePrompt

RunPostSetupCommands = Default_Theme_Choicer

EndPrompt = EndInsThemePrompt

; At the end of copy files, u can set Royal AIO as Windows default theme

[RoyalistThemeChoicePrompt]

Title ="::. %ThemeChoice_Title% .::"

Prompt ="%ThemeReplacerPrompt%"

ButtonType=YESNO

Royalist_SetPrompten.png

; If u're response's YES, file theme.js will be run & Royal AIO installed as default theme (visual style is Royal)

; If NO, your current theme will be kept

[Default_Theme_Choicer]

"WSCRIPT ""%01%\theme.js"""

Enjoy !

Edited by Ken@fri

Share this post


Link to post
Share on other sites

Hi Geej!

Thanx 4 your contribution. I've downloaded your soft few minutes ago.

Bye :welcome: .

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0