Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace DisplayBrightnessConsole
- {
- class Program
- {
- static void Main(string[] args)
- {
- if (args.Length == 0)
- {
- Console.WriteLine(GetBrightness());
- }
- else if (args[0] == "-getlevels")
- {
- byte[] BrightnessLevels = GetBrightnessLevels();
- foreach (byte b in BrightnessLevels)
- {
- Console.WriteLine(b.ToString());
- }
- }
- else
- {
- //parse switch value
- byte targetBrightness = byte.Parse(args[0]);
- SetBrightness(targetBrightness);
- Console.WriteLine("0"); //success value
- }
- }
- static byte GetBrightness()
- {
- //define scope (namespace)
- System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
- //define query
- System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightness");
- //output current brightness
- System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
- System.Management.ManagementObjectCollection moc = mos.Get();
- //store result
- byte curBrightness = 0;
- foreach (System.Management.ManagementObject o in moc)
- {
- curBrightness = (byte)o.GetPropertyValue("CurrentBrightness");
- break; //only work on the first object
- }
- moc.Dispose();
- mos.Dispose();
- return curBrightness;
- }
- static byte[] GetBrightnessLevels()
- {
- //define scope (namespace)
- System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
- //define query
- System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightness");
- //output current brightness
- System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
- System.Management.ManagementObjectCollection moc = mos.Get();
- //store result
- byte[] BrightnessLevels = new byte[0];
- foreach (System.Management.ManagementObject o in moc)
- {
- BrightnessLevels = (byte[])o.GetPropertyValue("Level");
- break; //only work on the first object
- }
- moc.Dispose();
- mos.Dispose();
- return BrightnessLevels;
- }
- static void SetBrightness(byte targetBrightness)
- {
- //define scope (namespace)
- System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
- //define query
- System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightnessMethods");
- //output current brightness
- System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
- System.Management.ManagementObjectCollection moc = mos.Get();
- foreach (System.Management.ManagementObject o in moc)
- {
- o.InvokeMethod("WmiSetBrightness", new Object[] { UInt32.MaxValue, targetBrightness }); //note the reversed order - won't work otherwise!
- break; //only work on the first object
- }
- moc.Dispose();
- mos.Dispose();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement