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

发布于 2022-09-12 13:41:24 字数 15 浏览 27 评论 0

如题,谢谢大家。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

记忆里有你的影子 2022-09-19 13:41:24

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 的实现之后再使用。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文