|
-
August 13th, 2009, 02:23 PM
#1
How do I programmatically change Windows Themes in XP?
I wrote a small app we use on our computer to keep them running optimally and do some utility things (delete temp files, defrag drives, clean registry, backup my docs to the server, etc). One of the options I ahve in there is "Reset Windows to Defaults" and the objective was to setup windows how we normally would set them up before we give them to our users. So if a user messes with all his/her settings we can click this button and reset it all back. So far it resets IE settings, changes Window Explorer views, puts all the default icons on the desktop and turns off desktop cleanup, etc.
Well one of the last things I want to do is change to the default Windows XP theme and apply it. After a lot of searching the internet I found this:
Code:
<DllImport("UxTheme.DLL", BestFitMapping:=False, CallingConvention:=CallingConvention.Winapi, CharSet:=CharSet.Unicode, EntryPoint:="#65")> _
Shared Function SetSystemVisualStyle(ByVal pszFilename As String, ByVal pszColor As String, ByVal pszSize As String, ByVal dwReserved As Integer) As Integer
End Function
Then it can be called in your code with something like this:
SetSystemVisualStyle("C:\WINDOWS\resources\Themes\Luna\Luna.msstyles", "NormalColor", "NormalSize", 0)
It does reset colors and stuff back to the theme. The problem is if a user has "Windows Classic" set and this is run it does apply the theme.....mostly. Things like dialog boxes stay in classic while the menu structure and desktop go the XP style. If you go into display properties it still shows "Windows Classic" but under Appearance it shows "Windows XP" which leads me to believe even though this function is for themes its actually just applying the appearance and not actually setting the theme.
Anyone know how to actually change and apply the theme?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|