Advertisement
Guest User

Console Brightness Control (Win)

a guest
Jul 13th, 2012
798
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.72 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace DisplayBrightnessConsole
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             if (args.Length == 0)
  12.             {
  13.                 Console.WriteLine(GetBrightness());
  14.             }
  15.             else if (args[0] == "-getlevels")
  16.             {
  17.                 byte[] BrightnessLevels = GetBrightnessLevels();
  18.  
  19.                 foreach (byte b in BrightnessLevels)
  20.                 {
  21.                     Console.WriteLine(b.ToString());
  22.                 }
  23.             }
  24.             else
  25.             {
  26.                 //parse switch value
  27.                 byte targetBrightness = byte.Parse(args[0]);
  28.                 SetBrightness(targetBrightness);
  29.                 Console.WriteLine("0"); //success value
  30.             }
  31.         }
  32.  
  33.         static byte GetBrightness()
  34.         {
  35.             //define scope (namespace)
  36.             System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
  37.  
  38.             //define query
  39.             System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightness");
  40.  
  41.             //output current brightness
  42.             System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
  43.  
  44.             System.Management.ManagementObjectCollection moc = mos.Get();
  45.  
  46.             //store result
  47.             byte curBrightness = 0;
  48.  
  49.             foreach (System.Management.ManagementObject o in moc)
  50.             {
  51.                 curBrightness = (byte)o.GetPropertyValue("CurrentBrightness");
  52.                 break; //only work on the first object
  53.             }
  54.  
  55.             moc.Dispose();
  56.             mos.Dispose();
  57.  
  58.             return curBrightness;
  59.         }
  60.  
  61.         static byte[] GetBrightnessLevels()
  62.         {
  63.             //define scope (namespace)
  64.             System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
  65.  
  66.             //define query
  67.             System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightness");
  68.  
  69.             //output current brightness
  70.             System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
  71.  
  72.             System.Management.ManagementObjectCollection moc = mos.Get();
  73.  
  74.             //store result
  75.             byte[] BrightnessLevels = new byte[0];
  76.  
  77.             foreach (System.Management.ManagementObject o in moc)
  78.             {
  79.                 BrightnessLevels = (byte[])o.GetPropertyValue("Level");
  80.                 break; //only work on the first object
  81.             }
  82.  
  83.             moc.Dispose();
  84.             mos.Dispose();
  85.  
  86.             return BrightnessLevels;
  87.         }
  88.  
  89.         static void SetBrightness(byte targetBrightness)
  90.         {
  91.             //define scope (namespace)
  92.             System.Management.ManagementScope s = new System.Management.ManagementScope("root\\WMI");
  93.  
  94.             //define query
  95.             System.Management.SelectQuery q = new System.Management.SelectQuery("WmiMonitorBrightnessMethods");
  96.  
  97.             //output current brightness
  98.             System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(s, q);
  99.  
  100.             System.Management.ManagementObjectCollection moc = mos.Get();
  101.  
  102.             foreach (System.Management.ManagementObject o in moc)
  103.             {
  104.                 o.InvokeMethod("WmiSetBrightness", new Object[] { UInt32.MaxValue, targetBrightness }); //note the reversed order - won't work otherwise!
  105.                 break; //only work on the first object
  106.             }
  107.  
  108.             moc.Dispose();
  109.             mos.Dispose();
  110.         }
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement