最近筆者在微軟新聞組先后看到若干個 Windows 外觀視覺樣式(Windows Themes)顯示不正確的問題,并在回復帖子時提了不少建議。筆者打算以此為題寫一篇 Windows Themes 故障匯總,總結八個比較有代表性的引起 Themes 顯示異常的問題。這里所說的 Themes 包括 Windows XP/Server 2003 的外觀樣式、Windows Vista/Server 2008/Windows 7 的 Basic 樣式以及 AERO 樣式。
★ 如果 Windows 無法應用任何 Themes、只能選擇類似 Windows 2000 的經典外觀:
1.系統服務 Themes 沒有開啟。
系統服務是最常見的引起 Windows 無法應用 Themes 的原因之一,特別是 Windows Server 系統,默認不開啟此服務。以管理員權限執行 %SystemRoot%\system32\SERVICES.MSC 打開“服務”設置,將 Themes 服務開啟、并將其運行方式修改為“自動”即可解決(Windows Server 2003)。
Windows Server 2008 僅開啟 Themes 服務依然不夠,還需要通過“管理工具”-“服務器管理”-“打開或關閉功能”-“添加功能”,手動添加默認沒有安裝的“桌面體驗(Desktop Experience)”組件方可。微軟官方提供的參考信息為:
http://support.microsoft.com/kb/946397
筆者認為,Windows Server 2008 既然默認不安裝“桌面體驗”,其實完全沒有必要預設一個根本無法生效的 Themes 服務,此服務完全可以在安裝“桌面體驗”時再添加。
Windows XP 家庭版/專業版、Windows Server 2003 默認內置有 Luna; Windows XP Media Center Edition 2005/Tablet PC Edition 2005 內置有 Luna 及 Royale Energy Blue; Windows Vista/Server 2008 內置有 Aero。我們可以從其它相同版本的 Windows 計算機中直接復制 Windows\Resources\themes 文件夾進行修復。
此外,控制面板的“顯示”屬性出現 RUNDLL32 運行錯誤的另一種可能是顯示驅動程序配置不正確,如果以安全模式啟動 Windows 可以正常打開“顯示”屬性,可能需要回到正常模式重新安裝顯示驅動程序。特別是有時在 Windows Vista 或以上版本中如果可以應用 Basic 樣式、但卻無法應用 AERO 樣式,則很有可能是顯示驅動程序配置不當或顯卡本身不支持 DirectX 9 所致。
解決方法是從其它相同版本的 Windows 計算機中導出上述注冊表項為 .REG 文件,復制過來并導入注冊表,然后重新啟動計算機。
除了 HKEY_CURRENT_USER 與 HKEY_LOCAL_MACHINE 之外,如果 Windows 登錄界面的 Themes 遇到問題,還可以修復 HKEY_USERS\.DEFAULT 中的相關設置。例如我們知道 Windows Server 2003 默認是只使用經典樣式的,雖然可以開啟 Themes 服務并在控制面板中應用 Themes,但只限于當前登錄的用戶帳戶、對 Windows 登錄對話框無效。此時我們便可以在將當前用戶帳戶的 Themes 設置好之后,將 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ ThemeManager 的所有數據原樣照搬至 HKEY_USER\.DEFAULT\Software\Microsoft\Windows\ CurrentVersion\ThemeManager,這樣即可將當前用戶帳戶應用的 Themes 應用至登錄對話框。
★ 如果 Windows 可以應用內置的 Themes、但無法應用來自第三方的 Themes:
在默認的系統設置中,Windows 僅允許應用系統內置的有限的幾種 Themes。為了突破 Windows 的限制應用來自第三方的 Themes,通常有兩種方法。
5.重新替換破解版的 UxTheme.DLL。
Windows 默認對 Themes 的限制來源于 Windows\system32\UxTheme.DLL。網上有很多解除限制的破解版 UxTheme.DLL 可供下載,將破解版的 UxTheme.DLL 通過故障恢復控制臺、多重操作系統或 Windows PE 等復制至系統文件夾,替換源文件即可解除限制。
6.重新安裝第三方 Themes 管理工具。
StyleXP 等第三方 Themes 管理工具可以以自建立的服務全面接管 Windows 的 Themes 服務,通過第三方軟件的服務即可直接應用來自第三方的 Themes,因此我們可以重新安裝相應的第三方 Themes 管理工具以突破 Windows 無法應用第三方 Themes 的限制,例如 StyleXP。
★ 如果 Windows 可以應用 Themes、但 Themes 卻顯示殘缺不完整:
這個問題主要出現在一些版本較早的 Windows 2000 甚至 Windows 9X 舊版程序中,某些舊版程序是無法全部或部分應用 Themes 的。
7.使用 eXeScope 為舊版程序設置“XP 樣式”。
eXeScope 提供了為應用程序設置“XP 樣式”的選項。某些不支持 Themes 的舊版程序經過 eXeScope 修改后可能可以支持 Themes,但不是全部,特別是 Windows Vista 的 AERO 樣式,某些舊版程序經過修改可能可以支持 Basic 樣式、但需要 DirectX 9 渲染的 AERO 卻始終無法生效。