2009-09-28 40 views
9

我正在使用Windows 7 RTM,我不知道控制面板如何在不重新啓動DWM(uxsms)的情況下如此平穩地更新Aero Glass顏色。 DwmSetColorizationColor不工作任何更多...Windows如何更改Aero Glass顏色?

回答

12

下面的方法應該是你的興趣:

[DllImport("dwmapi.dll", EntryPoint = "#127", PreserveSig = false)] 
public static extern void DwmGetColorizationParameters(out WDM_COLORIZATION_PARAMS parameters); 

[DllImport("dwmapi.dll", EntryPoint = "#131", PreserveSig = false)] 
public static extern void DwmSetColorizationParameters(WDM_COLORIZATION_PARAMS parameters, uint uUnknown); 

public struct WDM_COLORIZATION_PARAMS { 
    public uint Color1; 
    public uint Color2; 
    public uint Intensity; 
    public uint Unknown1; 
    public uint Unknown2; 
    public uint Unknown3; 
    public uint Opaque; 
} 

確保您調用DwmSetColorizationParameters方法之前做出DwmIsCompositionEnabled呼叫或將失敗。

正如你所看到的一些參數/屬性是未知的。
欲瞭解更多的信息,這裏是一個link (in German)

+1

+ 1抵消stupd -1。這個答案是對「如何做......」這個問題的回答。這可能就是它的原因。儘管我將原始問題解讀爲「How * does * it do ...」,而不是「* How *它會做什麼......」 – 2009-12-04 16:22:09

+0

在Windows 7中,原始方法DWMSetColorization會引發異常(它在Windows Vista中受到支持)。我認爲這是他的意圖,找到一種新的方法,提供與舊的功能相同的功能。一種選擇是編寫.theme文件並執行該文件,或使用上面指定的未記錄方法。 – Zyphrax 2009-12-06 13:09:08