系统:WINDOWS XP SP3 CN
    昨天系统的任务栏的颜色突然变成灰色(图1),而不是正常情况下的蓝色(图2),然后无论怎么更换主题,任务栏就是“面不改色”
    1.GIF
    之前也碰过同样的故障,当初是重装了系统。这回不想再重装系统,就上网搜索一下,大概都是下面几种解决方案:


  • 到桌面的“显示属性”-“外观”-“窗口和按钮”更改成“windows XP 样式”
  • 检查Uxtheme.dll是否破解。
  • 检查Theme服务是否启动正常。
  • 检查explorer.exe文件被病毒感染。

    我先查看了系统里的设置都正确,而且也没有破解过Uxtheme.dll。再检查“uxtheme.dll”和 “explorer.exe”的属性都正常,又从正常机器拷贝了一份,故障依旧。既然“explorer.exe”正常,那么会不会是加载错误或者恶意的 dll而导致的,马上用“ProcessExplorer”工具查看 “Explorer.exe”进程加载的dll文件,也没发现什么不正常的DLL注入。正当毫无头绪时候,发现光标指向“uxtheme.dll” 时,tooltip显示路径是在“windows”目录下,这就有点奇怪了,正常情况下应该是在“system32”目录下才对。

    2.GIF
    马上搜索“uxtheme.dll”,发现其它进程调用的“uxtheme.dll”都位“C:\windows\system32”目录下,证实我的猜测是正确的。

    3.GIF
    那问题会不会就是出在这里?马上试着把“WINDOWS”目录下“uxtheme.dll”删掉(这里要先结束explorer.exe进程才能删除),然后再启动“explorer.exe”进程,任务栏的颜色又恢复了

    补充:为什么explorer.exe会加载windows目录下的uxtheme.dll文件呢?看了dll搜索顺序,最初搜索是可执行文件所在目录下,所以会先把windows目录下的uxtheme.dll加载进来。
    疑问:Uxtheme.dll这个文件是怎么跑进来的呢,即使我拷贝同样的uxtheme.dll文件到windows目录下,任务栏还是无法应用主题样式? 是不是系统只识别位于system32目录下的uxtheme.dll?