Search code examples
c#windows-7screen-brightness

C# setting screen brightness Windows 7


I want ajust screen brightness by my self. Because Windows lets me only adjusting in limited range. I want dim the display from 0 to 100% and turning it off/on. It should be possible if windows can it do automatically (Dim display after: x minutes/Turn off display after: x minutes). I tried some sources and classes what I found by google. But no of them works.

Have you ever tried this or can you recommend me any working code?

Thanks for responds.


Solution

  • You can use the WmiSetBrightness method:

    using System.Management;
    //...
    static void SetBrightness(byte targetBrightness) {
        ManagementScope scope = new ManagementScope("root\\WMI");
        SelectQuery query = new SelectQuery("WmiMonitorBrightnessMethods");
        using(ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query)) {
            using(ManagementObjectCollection objectCollection = searcher.Get()) {
                foreach(ManagementObject mObj in objectCollection) {
                    mObj.InvokeMethod("WmiSetBrightness",
                        new Object[] { UInt32.MaxValue, targetBrightness });
                    break;
                }
            }
        }
    }
    

    For more details, please take a look at Brightness Control in WDDM and Monitor Configuration Functions