這段時間,經常看到有壇友問“為什麼下載的主題不能用?提示視覺風格錯誤”。
經過復查,自定義主題所需改動的3個文件(Shsvcs.dll,Uxtheme.dll,Themeui.dll)均無問題,版本號均正常。其實早在之前一段時間裡,就有一部分Vista第三方主題下載下來,放到主題目錄下就無法使用了。那麼,問題出在哪裡呢?
研究很多第三方的主題後,無意發現,主題語言文件對應的語言包文件名與主題文件名不匹配,是導致主題不能用的一個原因。以我現在使用的 Aero Clear為例,主題文件夾下的視覺樣式文件名為Aero Clear.msstyles,而對應的語言包(en-US或zh-CN)中的語言文件為Aero.msstyles。這就導致了 Windows 在加載主題時候,讀取不出正確的語言文件(要找的是Aero Clear.msstyles.mui而非Aero.msstyles.mui),從而導致主題無法加載。為什麼在安裝更新之前都可以加載呢?原因就在於 Windows 緩存了這些語言文件,裝載主題的時候不需要從aero.msstyles.mui當中讀取對應語言數據,所以使用一直沒有問題。
正確的解決辦法是:進入對應的語言文件夾,將aero.msstyles.mui 更名為視覺樣式對應的文件名。以 Aero Clear為例,將aero.msstyles.mui更名為Aero Clear.msstyles.mui,然後重新打開“個性化”,選擇需要更換的主題即可。所以,這不存在什麼微軟打擊第三方主題的問題。下圖附件是安裝了更新之後,正常啟用的啟用第三方主題(注意玻璃效果)。
總結一下,出現這種情況的原因,就在於 Windows Vista 的多語言機制(MUI)上。在 Vista 中,MUI的原理是默認搜尋當前語言版本的文件夾(中文版是zh-CN),如果沒有發現或者是文件夾下的MUI文件不符合,則進一步en-US文件夾下對應文件。如果en-US下的對應文件再不符合,則加載失敗。如果各位發現主題加載失敗,可試著建立一個 zh-CN文件夾,把en-US下的同名文件的拷來看看。
因此,大家在按照徹底DIY - Windows Vista主題制作不完全教程教程做主題時,一定要保證theme主題文件,msstyles文件,以及zh-cn或en-us裡的mui文件的文件名是一致的。