wince调节屏幕亮度

在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
    }


}</pre>


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值