Jump to content
Sign in to follow this  
Ken@fri

[Trick] How to Set Windows theme from command line

Recommended Posts

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...