微軟MVP解答:Windows Themes外觀視覺樣式故障匯總

2009/7/6 11:37:55    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家afsion.com.cn):微軟MVP解答:Windows Themes外觀視覺樣式故障匯總

 最近筆者在微軟新聞組先后看到若干個 Windows 外觀視覺樣式(Windows Themes)顯示不正確的問題,并在回復(fù)帖子時提了不少建議。筆者打算以此為題寫一篇 Windows Themes 故障匯總,總結(jié)八個比較有代表性的引起 Themes 顯示異常的問題。這里所說的 Themes 包括 Windows XP/Server 2003 的外觀樣式、Windows Vista/Server 2008/Windows 7 的 Basic 樣式以及 AERO 樣式。



★ 如果 Windows 無法應(yīng)用任何 Themes、只能選擇類似 Windows 2000 的經(jīng)典外觀:


1.系統(tǒng)服務(wù) Themes 沒有開啟。

系統(tǒng)服務(wù)是最常見的引起 Windows 無法應(yīng)用 Themes 的原因之一,特別是 Windows Server 系統(tǒng),默認(rèn)不開啟此服務(wù)。以管理員權(quán)限執(zhí)行 %SystemRoot%\system32\SERVICES.MSC 打開“服務(wù)”設(shè)置,將 Themes 服務(wù)開啟、并將其運行方式修改為“自動”即可解決(Windows Server 2003)。

Windows Server 2008 僅開啟 Themes 服務(wù)依然不夠,還需要通過“管理工具”-“服務(wù)器管理”-“打開或關(guān)閉功能”-“添加功能”,手動添加默認(rèn)沒有安裝的“桌面體驗(Desktop Experience)”組件方可。微軟官方提供的參考信息為:

http://support.microsoft.com/kb/946397

筆者認(rèn)為,Windows Server 2008 既然默認(rèn)不安裝“桌面體驗”,其實完全沒有必要預(yù)設(shè)一個根本無法生效的 Themes 服務(wù),此服務(wù)完全可以在安裝“桌面體驗”時再添加。


2.視覺樣式文件夾 Windows\Resources\themes 中的資源受損。

如果在選擇 Themes 的列表中無法找到部分或全部選項,可能是視覺樣式文件夾 Windows\Resources\themes 中的相關(guān)文件丟失或受損。

Windows XP 家庭版/專業(yè)版、Windows Server 2003 默認(rèn)內(nèi)置有 Luna;
Windows XP Media Center Edition 2005/Tablet PC Edition 2005 內(nèi)置有 Luna 及 Royale Energy Blue;
Windows Vista/Server 2008 內(nèi)置有 Aero。我們可以從其它相同版本的 Windows 計算機中直接復(fù)制 Windows\Resources\themes 文件夾進(jìn)行修復(fù)。


3.與 Windows Shell 相關(guān)的若干系統(tǒng)文件受損或需要重新注冊。

除了 Windows\Resources\themes 中的資源外,Windows Shell 相關(guān)的若干系統(tǒng)文件如果受損也可能會引起無法應(yīng)用 Themes,甚至可能會在控制面板中打開“顯示”屬性時出現(xiàn) RUNDLL32 運行錯誤。這些相關(guān)的系統(tǒng)文件包括 Explorer.EXE、Shell32.DLL、User32.DLL、Desk.CPL、ThemeUI.DLL 等,解決方法是 SFC /SCANNOW 檢測并修復(fù)。

如果確認(rèn)所有系統(tǒng)文件都沒有損壞,但依然無法應(yīng)用 Themes 或在打開“顯示”屬性時出現(xiàn) RUNDLL32 運行錯誤,可以嘗試執(zhí)行 REGSVR32 MMSYSTEM.DLL 重新注冊一下此文件。少數(shù)極端情況是除了 MMSYSTEM.DLL 外,還有其它系統(tǒng)文件也需要重新注冊(此現(xiàn)象一般發(fā)生在查殺病毒后發(fā)現(xiàn)無法應(yīng)用 Themes),此時可以將如下語句:

for %1 in (%WinDir%\system32\*.DLL) do REGSVR32.EXE /s %1

保存為 .BAT 批處理并運行,重新注冊一下 system32 中的所有 .DLL 文件。但除了 Windows 系統(tǒng)文件外,某些位于 system32 的第三方 .DLL 也將被一并重新注冊,可能會引起一些不必要的麻煩。

此外,控制面板的“顯示”屬性出現(xiàn) RUNDLL32 運行錯誤的另一種可能是顯示驅(qū)動程序配置不正確,如果以安全模式啟動 Windows 可以正常打開“顯示”屬性,可能需要回到正常模式重新安裝顯示驅(qū)動程序。特別是有時在 Windows Vista 或以上版本中如果可以應(yīng)用 Basic 樣式、但卻無法應(yīng)用 AERO 樣式,則很有可能是顯示驅(qū)動程序配置不當(dāng)或顯卡本身不支持 DirectX 9 所致。


4.與 Themes 相關(guān)的若干注冊表項受損。

除了系統(tǒng)文件的受損或需要重新注冊外,某些與 Themes 相關(guān)的注冊表項受損也可能引起無法正常應(yīng)用 Themes。這些注冊表項主要有:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ThemeManager
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Themes

(其中最后一條是 Themes 系統(tǒng)服務(wù)的注冊表項,如果之前已經(jīng)發(fā)現(xiàn) Themes 服務(wù)損壞無法啟動,可能是此注冊表項受損所致)

解決方法是從其它相同版本的 Windows 計算機中導(dǎo)出上述注冊表項為 .REG 文件,復(fù)制過來并導(dǎo)入注冊表,然后重新啟動計算機。

除了 HKEY_CURRENT_USER 與 HKEY_LOCAL_MACHINE 之外,如果 Windows 登錄界面的 Themes 遇到問題,還可以修復(fù) HKEY_USERS\.DEFAULT 中的相關(guān)設(shè)置。例如我們知道 Windows Server 2003 默認(rèn)是只使用經(jīng)典樣式的,雖然可以開啟 Themes 服務(wù)并在控制面板中應(yīng)用 Themes,但只限于當(dāng)前登錄的用戶帳戶、對 Windows 登錄對話框無效。此時我們便可以在將當(dāng)前用戶帳戶的 Themes 設(shè)置好之后,將 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
ThemeManager 的所有數(shù)據(jù)原樣照搬至 HKEY_USER\.DEFAULT\Software\Microsoft\Windows\
CurrentVersion\ThemeManager,這樣即可將當(dāng)前用戶帳戶應(yīng)用的 Themes 應(yīng)用至登錄對話框。


★ 如果 Windows 可以應(yīng)用內(nèi)置的 Themes、但無法應(yīng)用來自第三方的 Themes:


在默認(rèn)的系統(tǒng)設(shè)置中,Windows 僅允許應(yīng)用系統(tǒng)內(nèi)置的有限的幾種 Themes。為了突破 Windows 的限制應(yīng)用來自第三方的 Themes,通常有兩種方法。


5.重新替換破解版的 UxTheme.DLL。

Windows 默認(rèn)對 Themes 的限制來源于 Windows\system32\UxTheme.DLL。網(wǎng)上有很多解除限制的破解版 UxTheme.DLL 可供下載,將破解版的 UxTheme.DLL 通過故障恢復(fù)控制臺、多重操作系統(tǒng)或 Windows PE 等復(fù)制至系統(tǒng)文件夾,替換源文件即可解除限制。


6.重新安裝第三方 Themes 管理工具。

StyleXP 等第三方 Themes 管理工具可以以自建立的服務(wù)全面接管 Windows 的 Themes 服務(wù),通過第三方軟件的服務(wù)即可直接應(yīng)用來自第三方的 Themes,因此我們可以重新安裝相應(yīng)的第三方 Themes 管理工具以突破 Windows 無法應(yīng)用第三方 Themes 的限制,例如 StyleXP。


★ 如果 Windows 可以應(yīng)用 Themes、但 Themes 卻顯示殘缺不完整:

這個問題主要出現(xiàn)在一些版本較早的 Windows 2000 甚至 Windows 9X 舊版程序中,某些舊版程序是無法全部或部分應(yīng)用 Themes 的。


7.使用 eXeScope 為舊版程序設(shè)置“XP 樣式”。

eXeScope 提供了為應(yīng)用程序設(shè)置“XP 樣式”的選項。某些不支持 Themes 的舊版程序經(jīng)過 eXeScope 修改后可能可以支持 Themes,但不是全部,特別是 Windows Vista 的 AERO 樣式,某些舊版程序經(jīng)過修改可能可以支持 Basic 樣式、但需要 DirectX 9 渲染的 AERO 卻始終無法生效。

我們可以以 eXeScope 打開舊版應(yīng)用程序的相關(guān) .EXE 或 .DLL 文件,選中工具欄提供的“XP 樣式”后保存修改。如果 eXeScope 顯示此文件“早已是 XP 樣式”后依然無法應(yīng)用 Themes,那么這樣的舊版應(yīng)用程序可能就無法解決了。


8.解除不支持 Themes 的舊版程序附加在 Explorer.EXE 中的擴展插件。

某些比較“黏人”的舊版程序不僅自己無法應(yīng)用 Themes、而且還會為 Explorer.EXE 也附加上很多擴展插件,這樣可能會連帶著引起 Windows 的某些系統(tǒng)界面也無法應(yīng)用 Themes。我們可以下載運行 ShellExView 對 Explorer.EXE 的擴展插件進(jìn)行排查:

http://www.nirsoft.net/utils/shexview.zip

運行后選中可能無法應(yīng)用 Themes 的非 Microsoft 第三方擴展插件,通過右鍵菜單 Disable Selected Items 將其禁用即可,重新啟動 Windows 后觀察受影響的 Windows 系統(tǒng)界面能否恢復(fù)正常。

作者 alx-zj