求C#版调节屏幕亮度的系统函数SetMonitorBrightness(位于Dxva2.dll)的例子

新手上路,请多包涵

如题,谢谢大家。

阅读 4.3k
1 个回答

SetMonitorBrightness 现成的封装在这里:WPF 修改屏幕亮度 (lindexi.com)

我总结了三种.Net修改windows亮度的办法

  1. 使用 Dxva2.dll

    Dxva的效果是调整显示器内置亮度,一般是支持显示器,所以笔记本可能就不支持这种方法。

  2. 使用 gdi32.dll

    使用这个方法修改亮度实际上是在调整伽马值,虽然调整伽马会导致色彩偏,但确实是降低了亮度。这似乎属于英特尔驱动色彩管理,理应基本所有电脑都支持这种方法把。
    我在dotnet5 下VS提示我需要引入 System.Drawing.Common 5.0.x 这个包

  3. 使用WMI,System.Management 模块

    这种方法调整亮度,和笔记本、win平板上自带的亮度调整是一摸一样的,相当于改系统设置里的亮度,调整亮度时左上角会有亮度弹窗。所以只有显示器的主机设备应该是不支持的。
    这种方法 + 第二种方法可以让屏幕亮度做到很低。
    同上,需要引入 System.Management

详情代码请看 https://github.com/luojunyuan...

在MainWindow的code-behind中有一点点使用示例,因为代码不长建议看看 AdjustScreenBuilder.cs 的实现之后再使用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏