SetMonitorBrightness 现成的封装在这里:WPF 修改屏幕亮度 (lindexi.com)我总结了三种.Net修改windows亮度的办法使用 Dxva2.dllDxva的效果是调整显示器内置亮度,一般是支持显示器,所以笔记本可能就不支持这种方法。使用 gdi32.dll使用这个方法修改亮度实际上是在调整伽马值,虽然调整伽马会导致色彩偏,但确实是降低了亮度。这似乎属于英特尔驱动色彩管理,理应基本所有电脑都支持这种方法把。 我在dotnet5 下VS提示我需要引入 System.Drawing.Common 5.0.x 这个包使用WMI,System.Management 模块这种方法调整亮度,和笔记本、win平板上自带的亮度调整是一摸一样的,相当于改系统设置里的亮度,调整亮度时左上角会有亮度弹窗。所以只有显示器的主机设备应该是不支持的。这种方法 + 第二种方法可以让屏幕亮度做到很低。同上,需要引入 System.Management详情代码请看 https://github.com/luojunyuan...在MainWindow的code-behind中有一点点使用示例,因为代码不长建议看看 AdjustScreenBuilder.cs 的实现之后再使用。
SetMonitorBrightness 现成的封装在这里:WPF 修改屏幕亮度 (lindexi.com)
我总结了三种.Net修改windows亮度的办法
使用 Dxva2.dll
Dxva的效果是调整显示器内置亮度,一般是支持显示器,所以笔记本可能就不支持这种方法。
使用 gdi32.dll
使用这个方法修改亮度实际上是在调整伽马值,虽然调整伽马会导致色彩偏,但确实是降低了亮度。这似乎属于英特尔驱动色彩管理,理应基本所有电脑都支持这种方法把。
我在dotnet5 下VS提示我需要引入 System.Drawing.Common 5.0.x 这个包
使用WMI,System.Management 模块
这种方法调整亮度,和笔记本、win平板上自带的亮度调整是一摸一样的,相当于改系统设置里的亮度,调整亮度时左上角会有亮度弹窗。所以只有显示器的主机设备应该是不支持的。
这种方法 + 第二种方法可以让屏幕亮度做到很低。
同上,需要引入 System.Management
详情代码请看 https://github.com/luojunyuan...
在MainWindow的code-behind中有一点点使用示例,因为代码不长建议看看 AdjustScreenBuilder.cs 的实现之后再使用。