程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# WINCE調節屏幕亮度

C# WINCE調節屏幕亮度

編輯:C#入門知識

在wince裡面保存屏幕亮度的值保存在注冊表HKEY_CURRENT_USER\ControlPanel\\Backlight\Brightness裡面,值的范圍是0-100,所以要改變屏幕的亮度,只要改變這個值,然後重新加載就行代碼如下:

 
/// <summary>  
    /// 調節屏幕的亮度  
    /// </summary>  
    public class SetBackLight  
    {  
        public static void SetBright(string strValue)  
        {  
            SetBackLightValue(strValue);  
            ReloadBackLight();  
        }  
        public static int GetBacklightValue()  
        {  
            RegistryKey CUser = Registry.CurrentUser;  
            RegistryKey Backlight = CUser.OpenSubKey("ControlPanel\\Backlight", true);  
            return (int)Backlight.GetValue("Brightness", RegistryValueKind.DWord);  
        }  
        public static void SetBackLightValue(string strValue)  
        {  
            try  
            {  
                   
                RegistryKey hkcu = Registry.CurrentUser;  
                RegistryKey Backlight = hkcu.OpenSubKey("ControlPanel\\Backlight", true);  
                Backlight.SetValue("Brightness", strValue, RegistryValueKind.DWord);  
            }  
            catch (Exception ex)  
            {  
                System.Diagnostics.Debug.WriteLine(ex.Message);  
            }  
        }  
  
  
        public static bool ReloadBackLight()  
        {  
            
            bool ret = false;  
            IntPtr scanEvent = NativeWin.CreateEvent(IntPtr.Zero, false, false, "BackLightChangeEvent");  
            if (scanEvent == null)  
            {  
                throw new Exception("CreateEvent失敗");  
            }  
            else  
            {  
                NativeWin.EventModify(scanEvent, EventFlags.SET);  
                NativeWin.CloseHandle(scanEvent);  
                ret = true;  
            }  
            return ret;  
        }  
  
  
        partial class NativeWin  
        {  
            [DllImport("coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]  
            internal static extern IntPtr CreateEvent(IntPtr lpEventAttributes, [In, MarshalAs(UnmanagedType.Bool)] bool bManualReset, [In, MarshalAs(UnmanagedType.Bool)] bool bIntialState, [In, MarshalAs(UnmanagedType.BStr)] string lpName);  
  
  
            [DllImport("coredll.dll", SetLastError = true, CharSet = CharSet.Auto)]  
            [return: MarshalAs(UnmanagedType.Bool)]  
            internal static extern bool CloseHandle(IntPtr hObject);  
  
  
            [DllImport("coredll.dll", SetLastError = true)]  
            [return: MarshalAs(UnmanagedType.Bool)]  
            internal static extern bool EventModify(IntPtr hEvent, [In, MarshalAs(UnmanagedType.U4)] EventFlags dEvent);  
        }  
  
  
        enum EventFlags : int  
        {  
            PULSE = 1,  
            RESET = 2,  
            SET = 3  
        }  
  
  
    }  

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved