2009-09-28 12 views
9

मैं विंडोज 7 आरटीएम का उपयोग कर रहा हूं और मुझे आश्चर्य है कि नियंत्रण कक्ष डीडब्लूएम (uxsms) को पुनरारंभ किए बिना आसानी से एयरो ग्लास रंग को कैसे अपडेट कर सकता है। DwmSetColorizationColor किसी भी अधिक काम कर रहा है नहीं ...विंडोज़ एरो ग्लास रंग कैसे बदलता है?

उत्तर

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 का विरोध करने के लिए है। यह उत्तर प्रश्न का उत्तर है "यह कैसे करता है ..." शायद यह वास्तव में यह कैसे करता है। हालांकि मैंने मूल प्रश्न को "कैसे * करता है * यह करता है ..." और नहीं "* यह कैसे करता है ..." –

+0

विंडोज 7 में मूल विधि DWMSetColorization एक अपवाद फेंकता है (हालांकि यह विंडोज विस्टा में समर्थित था)। मुझे लगता है कि यह एक नई विधि खोजने का उनका इरादा था जो पुरानी एक जैसी कार्यक्षमता प्रदान करता है। एक विकल्प है .theme फ़ाइल लिखना और उसे निष्पादित करना या ऊपर निर्दिष्ट अनियंत्रित विधि का उपयोग करना है। – Zyphrax

संबंधित मुद्दे