static byte[] QueryAvailableBrightnessLevels() { byte[] BrightnessLevels = new byte[0]; System.Management.ManagementScope ManScope = new System.Management.ManagementScope("ROOT\\WMI"); System.Management.SelectQuery ManQuery = new System.Management.SelectQuery("WmiMonitorBrightness"); System.Management.ManagementObjectSearcher ManObjS = new System.Management.ManagementObjectSearcher(ManScope, ManQuery); try { System.Management.ManagementObjectCollection ManObjC = ManObjS.Get(); foreach (System.Management.ManagementObject ManObject in ManObjC) { BrightnessLevels = (byte[])ManObject.GetPropertyValue("Level"); break; } ManObjC.Dispose(); ManObjS.Dispose(); } catch (Exception VideoException) { MessageBox.Show("Unable to get available brightness levels. The video card may not support this feature or the driver is not installed. Error: " + VideoException.Message, "BControl", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(BrightnessLevels); }
static void injectBrightnessWithValue(byte brightness) { System.Management.ManagementScope ManScope = new System.Management.ManagementScope("ROOT\\WMI"); System.Management.SelectQuery ManQuery = new System.Management.SelectQuery("WmiMonitorBrightnessMethods"); System.Management.ManagementObjectSearcher ManObjS = new System.Management.ManagementObjectSearcher(ManScope, ManQuery); System.Management.ManagementObjectCollection ManObjC = ManObjS.Get(); foreach (System.Management.ManagementObject ManObject in ManObjC) { ManObject.InvokeMethod("WmiSetBrightness", new Object[] { UInt32.MaxValue, brightness }); break; } ManObjC.Dispose(); ManObjS.Dispose(); }
static int FetchCurrentBrightness() { byte CurrentBrightness = 0; System.Management.ManagementScope ManScope = new System.Management.ManagementScope("ROOT\\WMI"); System.Management.SelectQuery ManQuery = new System.Management.SelectQuery("WmiMonitorBrightness"); System.Management.ManagementObjectSearcher ManObjS = new System.Management.ManagementObjectSearcher(ManScope, ManQuery); System.Management.ManagementObjectCollection ManObjC = ManObjS.Get(); foreach (System.Management.ManagementObject ManObject in ManObjC) { CurrentBrightness = (byte)ManObject.GetPropertyValue("CurrentBrightness"); break; } ManObjC.Dispose(); ManObjS.Dispose(); return((int)CurrentBrightness); }