Si vous devez changer options d'apparence individuelles (comme les couleurs de la fenêtre), vous pouvez modifier les valeurs de registre appropriées dans les clés HKEY_CURRENT_USER\Control Panel\Appearance
et HKEY_CURRENT_USER\Control Panel\Colors
. Par exemple, ce code chamge la couleur de fond de la fenêtre à la crème:
Set oShell = CreateObject("WScript.Shell")
oShell.RegWrite path & "HKCU\Control Panel\Colors\Window", "255 251 240", "REG_SZ"
Notez toutefois que Windows va probablement appliquer les modifications de Registre uniquement après le redémarrage.
Si vous devez charge un prêt .theme fichier, vous pouvez utiliser le code suivant:
Const Theme = "C:\MyTheme.theme"
Set oShellApp = CreateObject("Shell.Application")
oShellApp.ControlPanelItem "desk.cpl desk,@Themes /Action:OpenTheme /file:""" & Theme & """"
Bien que, comme Sascha a souligné, cela apportera seulement les propriétés d'affichage de dialogue avec le thème spécifié sélectionné; vous avez toujours besoin de l'utilisateur pour cliquer sur OK ou appuyez sur Entrée. Il est possible de simuler touches à partir du code de script en utilisant la méthode WshShell.SendKeys
:
Set oShell = CreateObject("WScript.Shell")
' Wait until the Display Properties dialog is opened
While Not oShell.AppActivate("Display Properties")
WScript.Sleep 500
Wend
' Send the Enter key to close the dialog and apply the theme
Do
oShell.SendKeys "~"
WScript.Sleep 500
Loop While oShell.AppActivate "Display Properties"
Mais cette approche est peu fiable, car l'utilisateur peut cliquer ailleurs Entrez donc irait à une autre fenêtre. En outre, la légende de la boîte de dialogue Propriétés d'affichage dépend des paramètres régionaux.
Une autre option consisterait à utiliser l'API Theme.Manager
fournie par la bibliothèque themeui.dll à partir de Windows XP SP1, mais cela ne semble pas fonctionner sur XP SP2. Quoi qu'il en soit, vous pouvez trouver l'exemple de code here.