I have Windows Server 2008 installed on a Sony laptop and the brightness control doesn't work. I'd like to write a program to allow me to change it.
Currently what I have to do is open the Power control panel, click advanced settings, and fight through so many UAC boxes that anybody watching me must think I'm completely crazy.
I just want a simple little program to do it but i dont know what API to call
The Brightness slider appears in action center in Windows 10, version 1903. To find the brightness slider in earlier versions of Windows 10, select Settings > System > Display, and then move the Change brightness slider to adjust the brightness.
Brightness controls are implemented in the monitor driver, Monitor. sys, supplied by the operating system. The monitor driver implements a Windows Management Instrumentation (WMI) interface to allow applications (such as the operating system's brightness slider) to interact with the brightness level.
I looked up John Rudy's link to WmiSetBrightness in MSDN and came up with this:
ManagementClass mclass = new ManagementClass("WmiMonitorBrightnessMethods");
mclass.Scope = new ManagementScope(@"\\.\root\wmi");
ManagementObjectCollection instances = mclass.GetInstances();
// I assume you get one instance per monitor
foreach(ManagementObject instance in instances)
{
ulong timeout = 1; // in seconds
ushort brightness = 50; // in percent
object[] args = new object[] { timeout, brightness };
instance.InvokeMethod("WmiSetBrightness", args);
}
Note: ManagementClass
, ManagementObjectCollection
, and ManagementObject
all implement IDisposable
. You should call Dispose()
or use "using
" to avoid leaking resources.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With