Github: https://github.com/CHNMaxGor/AjustScreenBrightness

方法一: 使用网上常说的 Gdi32.dll 下的 SetDeviceGammaRamp (修改系统Gamma)

  1. DllImport("gdi32.dll")]
  2. public static extern bool GetDeviceGammaRamp(IntPtr hDC, ref RAMP lpRamp);
  1. [DllImport("gdi32.dll")]
  2. public static extern bool SetDeviceGammaRamp(IntPtr hDC, ref RAMP lpRamp);

方法二: 使用MSDN上的 dxva2.dll SetMonitorBrightness

  1. [DllImport("dxva2.dll")]
  2. public static extern bool GetNumberOfPhysicalMonitorsFromHMONITOR(IntPtr hMonitor, ref uint pdwNumberOfPhysicalMonitors);
  3.  
  4. [DllImport("dxva2.dll")]
  5. public static extern bool GetPhysicalMonitorsFromHMONITOR(IntPtr hMonitor,
  6. uint dwPhysicalMonitorArraySize, [Out] PhysicalMonitor[] pPhysicalMonitorArray);
  7.  
  8. [DllImport("dxva2.dll")]
  9. public static extern bool DestroyPhysicalMonitors(uint dwPhysicalMonitorArraySize,
  10. [Out] PhysicalMonitor[] pPhysicalMonitorArray);
  11.  
  12. [DllImport("dxva2.dll")]
  13. public static extern bool GetMonitorTechnologyType(IntPtr hMonitor,
  14. ref McDisplayTechnologyType pdtyDisplayTechnologyType);
  15.  
  16. [DllImport("dxva2.dll")]
  17. public static extern bool GetMonitorCapabilities(IntPtr hMonitor, ref uint pdwMonitorCapabilities,
  18. ref uint pdwSupportedColorTemperatures);
  19.  
  20. [DllImport("dxva2.dll")]
  21. public static extern bool SetMonitorBrightness(IntPtr hMonitor, short brightness);
  22.  
  23. [DllImport("dxva2.dll")]
  24. public static extern bool SetMonitorContrast(IntPtr hMonitor, short contrast);
  25.  
  26. [DllImport("dxva2.dll")]
  27. public static extern bool GetMonitorBrightness(IntPtr hMonitor, ref short pdwMinimumBrightness,
  28. ref short pdwCurrentBrightness, ref short pdwMaximumBrightness);
  29.  
  30. [DllImport("dxva2.dll")]
  31. public static extern bool GetMonitorContrast(IntPtr hMonitor, ref short pwdMinimumContrast,
  32. ref short pwdCurrentContrast, ref short pwdMaximumContrast);

方法三: 使用 C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_neutral_3daeca3838e011e0\igfxDHLib.dll (这是驱动的文件,不同机器有自己对应的驱动文件)

  1. DataHandlerClass _cls = new DataHandlerClass();
  2. _CUI_COLOR_DEVICES _screenModel = default(_CUI_COLOR_DEVICES);
  3.  
  4. public AjustScreenByIgfxDHLib()
  5. {
  6. CUI_SUPPORTED_CONFIG cui_SUPPORTED_CONFIG = default(CUI_SUPPORTED_CONFIG);
  7. uint num = _cls.get_SupportedConfig(ref cui_SUPPORTED_CONFIG);
  8. var id = cui_SUPPORTED_CONFIG.DeviceConfig[0].DispDev[0];
  9. uint[] array = new uint[3];
  10. var a = _cls.get_GetDeviceList(id, array);
  11. _screenModel.ulDevices = array[0];
  12. _screenModel.Device = new _CUI_COLOR_INFO[3];
  13. _screenModel.Device[0].Brightness.color = _COLOR_TYPE.NumColors;
  14. _screenModel.Device[0].Contrast.color = _COLOR_TYPE.NumColors;
  15. _screenModel.Device[0].Gamma.color = _COLOR_TYPE.NumColors;
  16. _screenModel.Command = _CUI_COLOR_COMMAND.GET_COLOR;
  17. _cls.get_color(_screenModel.ulDevices, ref _screenModel);
  18. }

  

注意事项 该方法使用时请注意好参数的范围,比如说把对比度设置太低时屏幕会完全黑掉 什么都看不到,然后你就不能直接把对比度调回来了.

c# 多种方法调整屏幕亮度的更多相关文章

  1. Android 播放电影时滑动屏幕调整屏幕亮度(转)

    (转自:http://blog.csdn.net/piaozhiye/article/details/6544450) 发现有一些主流的播放器播放电影时可以通过滑动屏幕调整屏幕亮度,其实实现起来也很容 ...

  2. 【转】Windows Phone 调整屏幕亮度的简单实现

    之前看到以及其它应用都有调节屏幕亮度的功能,还以为MS有相关的API,就去MSDN找了下,但是怎么都找不到.今天突然想到做自定义MessageBox时,由于要突出弹出框部分,所以会改变LayoutRo ...

  3. Mint linux中调整屏幕亮度的方法

    /*********************************************************************  * Author  : Samson  * Date   ...

  4. Unity shader学习之屏幕后期效果之调整屏幕亮度,饱和度,对比度

    Unity的屏幕后期处理效果,使用MonoBehaviour.OnRenderImage来实现. 转载请注明出处:http://www.cnblogs.com/jietian331/p/7228063 ...

  5. centos调整屏幕亮度

    笔记本安装centos6.5后亮度无法通过键盘快捷键调节,可以通过安装软件来调节. 安装:yum install xgamma 设置亮度:xgamma -gamma n( 0.1 < n < ...

  6. 解决ubuntu无法调整和保存屏幕亮度的问题

    整理自解决ubuntu无法调整和保存屏幕亮度的问题 ubuntu无法调整屏幕亮度,对笔记本来说很耗电,同时也很刺眼,因为它是默认以最大亮度来工作的. 所谓的调整,方法为下面的其中一种: 1.Fn+左右 ...

  7. Android开发调节屏幕亮度

    在播放器,我们经常看到这样的设计,即,在用户的特定部分将能够滑动屏幕向上或向下调整屏幕的亮度,上下滑动的某一部分将能够调整播放音量.并以滑动的进程可以进行调整,以玩. 如今,我不得不说一下亮度调节. ...

  8. iOS获取屏幕亮度及设置

    平常很少有功能点需要调整屏幕亮度,但是也会有一些特殊场景,类似支付宝微信的二维码提供扫描时会使屏幕程序高亮状态,查了下资料做了一下简单记录: 获取当前屏幕的亮度 CGFloat value = [UI ...

  9. Win8.1屏幕亮度自动调节关闭方法

    细心的朋友会发现,Win8.1系统的笔记本屏幕亮度有时候,会根据外界光线亮度以及温度自动调节屏幕亮度,尽管看似比较智能,但有时候我们并不希望笔记本屏幕亮度受光线影响,忽暗忽亮.如果我们希望Win8笔记 ...

随机推荐

  1. ectouch 概述

    模块(The Model): 即M 主要包含那些用来操作数据库的函数 文件后缀一般是***Model.class.php 路径一般是../mobile/include/apps/default/mod ...

  2. 16.git命令汇总

  3. oracle通用函数,nvl,nvl2,NULLIF ,coalesce

    Oracle 通用函数 ① NVL 函数--------将空值转换成一个已知的值: 可以使用的数据类型有日期.字符.数字. 函数的一般形式:   NVL(commission_pct,0)       ...

  4. keystonejs开发中解决bug--版本要对应

    今天要调试bug,先说明一下背景!有需求要修改keystonejs的后台管理页面,然后是看官方文档知道后台管理也是react+redux.然后为了加强后台管理页的功能(如汉化),然后将keystone ...

  5. 全面认识openstack:OpenStack架构详解

    OpenStack构架知识梳理   OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟 ...

  6. redis两种持久化方法对比分析

    1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...

  7. DOS系统常用命令

    前言: DOS命令是DOS操作系统使用的命令.DOS操作系统是一种磁盘操作系统,从Windows95.98到今天的Windows10都内置有DOS操作系统.可以通过"win+R", ...

  8. bug排查小结

    mysql cpu利用率偏高,并且长时间居高不下. show processlist 发现有一个单表查询的sql语句出现的频率比较高, 这个单表查询中规中矩,where语句中条件都使用”=“连接,再加 ...

  9. python函数注释, :与 ->

    python函数注释, :与 -> 如图:add1函数中的:意思是:函数中的参数说明    add2函数中:->意思是:函数的返回值为整型 这两种方法都是函数的注释方法,具体使用时要别人能 ...

  10. 底层网络技术以及IP编址

    网络信息的传输在最底层总是依托于物理介质来进行传输的,这里的传输介质分为两种: 有线介质  导线管(导向媒体).例如:双绞线.同轴电缆.光纤等 无线介质  电磁波(非导向媒体):利用各种波长的电磁波充 ...