Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I try to set a visual style in Windows XP (the standard Luna, for example), I get one of these two:

  • "Access denied" error.
  • It works, but when I restart the computer, I get the Classic look again, with no errors.

Also, the "Windows and icons" dropdown is grayed out in the "Appearance". This is a list of things I have tried, with no results:

  • Making sure "Use visual styles on windows" is checked on System Properties > Advanced > Performance.
  • Restarting the "Themes" service. It starts cleanly, no errors.
  • Applying these two fixes: Kelly's Corner and tweaks.com.
  • Running sfc /scannow and checking the integrity of uxtheme.dll against a clean installation of XP
  • Restoring the whole \Windows\Resources\Themes directory.
  • Creating a new user. The new user does not seem to suffer this problem. Maybe this is the solution, create a new user and migrating all the data, but it would be a pain, and I would prefer reinstalling the whole thing.

I am using Windows XP Professional SP3, with no spyware, no virus, and no other visible malfunctions.

How can I fix this?

share|improve this question
    
Did the feature ever work for you? –  John T Aug 21 '09 at 16:41
    
If you are talking about the need to patch uxtheme.dll to use not-official visual styles, that's not my problem. My problem is that I can't use even the included one! –  MM. Aug 21 '09 at 16:42
    
yes I know what you're asking... but did the included ones ever work for you? or did they suddenly stop working? –  John T Aug 21 '09 at 16:55
    
Sorry John, I misread your comment. I didn't see the "for you". Yes, the feature was working before, and stopped working one day I decided to use the Classic appearance. Then I wanted to come back to a visual style, but I couldn't. –  MM. Aug 21 '09 at 16:56
1  
Could be a group policy gone wrong? –  Breakthrough Aug 21 '09 at 17:02

6 Answers 6

Since you're getting an "access denied" error, you could try using process monitor to determine WHAT has denied the access.

Open the program, go to Filter -> Filter... And set up a new filter with: Result is ACCESS DENIED then include.

Do what you need to do and see what it "denies access" on. Maybe you can solve it from there!

share|improve this answer

It does sound like the profile itself is corrupted, not Windows. I would suggest running a repair installation next but I doubt it would touch the profile folder or the HKCU chunk of the registry.

Recreating the user profile would definitely be the next thing I would try. Or, doing the repair installation just to rule it out if you have a spare 30-40 minutes.

Another option, which really depends on how long you have had this problem - is to do a System Restore back to a point when it WAS working okay. As this rolls back the system files and registry, it might do the trick. As long as you take a system restore snapshot before you do this (just to be on the safe side - although I think it does do this automatically beforehand) you can always roll-"forward?" to the current point in time again.

share|improve this answer

It might be that uxtheme.dll has been modified.
Some theme managers modify it and never undo their changes (such as StyleXP).
So for a solution you should:

  1. Get a good uxtheme.dll from another computer
  2. Boot in safe mode
  3. Replace this dll in C:\WINDOWS\system32\uxtheme.dll
  4. Replace this dll, but only if it's already there, in the C:\Windows\system32\dllcache directory
  5. Reboot normally.

The dllcache folder is marked as system and hidden, so if you want to view the dllcache folder through the Explorer interface, open My Computer, access Tools > Folder Options, click the View tab and then select the Show hidden files and folders option, and uncheck the Hide protected operating system files option. Or, alternatively, if you don't want to change these settings, use instead the Run command, and type %systemroot%\system32\dllcache and press OK.

share|improve this answer
    
"Things I tried with no results: (...) Running sfc /scannow and checking the integrity of uxtheme.dll against a clean installation of XP" –  MM. Oct 5 '09 at 15:03
    
See my new answer. –  harrymc Oct 5 '09 at 18:34
    
You could delete this answer so as not to clutter the page. –  Sasha Chedygov Jun 9 '10 at 4:18
    
@musicfreak: This answer complements my other answer to this question. In any case, as the OP didn't indicate how or if he solved the problem, all the answers can be considered as worthless. –  harrymc Jun 9 '10 at 5:34
    
Fair enough. Personally I delete answers when they are proven wrong or irrelevant, but that's just me. –  Sasha Chedygov Jun 9 '10 at 22:15

It may seem silly, but let's ensure that the Themes folder is actually not off limits to you, or anyone else (it's possible that a Windows service that needs to read the files can't for whatever reason).

  1. Browse to \Windows\Resources\Themes
  2. Right Click, Properties
  3. Click the security tab
  4. Click Advanced
  5. Untick "Inherit from the parent..."
  6. Click "Remove"
  7. Click "Add"
  8. Type "Everyone". Click "OK"
  9. Tick "Full Control" in the "Allow Column"
  10. Click "OK"
  11. Tick "Replace permission entries on child..."
  12. Click "Apply"
  13. If prompted to overwrite all permissions, click "Yes"
  14. OK your way out of the prompts.
  15. Restart the themes service.
share|improve this answer
    
Thanks for the answer. Nothing changed doing that. –  MM. Sep 20 '09 at 10:19
    
Giving everyone full control is a bad idea. –  kinokijuf Jul 24 '12 at 8:59

Another try (but a very wild idea) is based on the fact that uxtheme.dll only allows you to use unsigned skins.

The idea is that perhaps Windows for some unknown reason now considers all your themes as unsigned. The solution will be to install StyleXP which patches uxtheme.dll so as to enable you to use unsigned skins.

Just note that when you uninstall StyleXP, it doesn't undo the patches, so you'll need to follow the directions in my other answer to restore it.

share|improve this answer

You could try renaming the NTUSER.DAT in your profile folder. This file contains the HKEY_CURRENT_USER hive in the registry.

If the problem is solved through this, the answer can be found in said HKEY_CURRENT_USER hive. Make sure to overwrite the file back.

Do this from another user, because you can't access the file while logged into yours (because it's in use).

share|improve this answer
    
By renaming NTUSER.DAT, you won’t be able to login. –  kinokijuf Jul 24 '12 at 9:06

protected by harrymc Jul 24 '12 at 10:22

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.