[Astuce] Définir un thème Windows par défaut en ligne de com

Discussion of the French translation of the Update Pack. La discussion en français est bienvenue!
Locked
Ken@fri
Posts: 95
Joined: Mon Jul 27, 2009 9:44 am
Location: Libreville (GABON)

[Astuce] Définir un thème Windows par défaut en ligne de commande

Post by Ken@fri » Sun Jan 17, 2010 10:26 am

Bonjour à tous !

Pour les besoins d'un addon INF basé sur le thème ROYAL AIO (créé par moataz et addon SVCPACK par boats) que j'ai créé, je souhaitais que ce thème soit celui par défaut à la fin de l'install manuelle (clic-droit sur le fichier INF --->commande Installer) de mon addon INF


Après environ une semaine de recherches sur le net, j'ai fini par trouver comment le faire >>>ICI<<<
Image

Néanmoins, j'ai du adapté légèrement le script pour indiquer de façon dynamique le chemin vers le dossier des thèmes Windows

Code: Select all

objShell.Run('rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"%windir%\\resources\\themes\\%NOM_DE_VOTRE_THEME%.theme"',[color=#FF0000]1[/color]);

WScript.Sleep(2000);
Ce qui après coup, donne :
//===================================================================
// 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}");
Pour l'utiliser, créez un nouveau document .txt, faites-y un copier-coller des lignes ci-dessus et enregistrez le tout sous un nom de votre choix, avec l'extension .js (exemple theme.js)

Dans mon fichier INF, j'ai mis ceci pour l'appeler:
[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


; En fin de copie des fichiers, vous aurez la possibilité de définir Royal AIO comme
; thème par défaut de Windows

[RoyalistThemeChoicePrompt]
Title ="::. %ThemeChoice_Title% .::"
Prompt ="%ThemeReplacerPrompt%"
ButtonType=YESNO

Image

; si vous avez répondu OUI à la question ci-dessus, le fichier theme.js est exécuté
; et Royal AIO est installé comme thème par défaut (style Royal). Sinon, votre thème actuel
; sera conservé

[Default_Theme_Choicer]
"WSCRIPT ""%01%\theme.js"""

Le changement de thème pose parfois quelques petits problèmes esthétiques toute de suite après. Sans gravité, puisqu'il vous suffit SIMPLEMENT de fermer, puis de réouvrir votre session.
Image


Voilà...En espérant que ça puisse être utile à d'autres :D .

Locked