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<<<

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
; 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, 03 February 2010 - 03:21 PM.














