在 Windows 11 中使用启用 HDR 的显示器时,我们可以使用“设置”>“系统”>“显示”>“HDR”中的“SDR 内容亮度”滑块来控制屏幕上常规非 HDR 元素的亮度。
例如,如果显示器的最大亮度为 400nit,并且滑块设置为 60%,则 SDR 内容将以 240nit 的亮度显示。
Windows 10 也有类似的东西。
我希望能够以编程方式更改滑块的值,这样我就可以在白天拥有更亮的桌面,在晚上拥有更暗的桌面。
通过 WMI 或 DDC/CI 更改亮度的“旧”方法不适用于启用 HDR 的显示器。
我使用 ProcessMonitor 来查看滑块的作用,但它生成了太多条目,而且我能看到的唯一相关位是它更改了注册表项Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\MonitorDataStore\DELA1E4#G7IYMxgwAAgX_10_07E6_A1\SDRWhiteLevel
。
在我的显示屏上,该值以 12 月形式从 1000 (0%) 到 3500 (50%) 到 6000 (100%),其中 1000 等于 80nit。
一旦 SystemSettings.exe 更改了注册表值,它就会调用 D3D12 中的某些内容来实际应用更改。
翻阅微软关于Win32 API的文档,我找不到任何相关信息。
有人知道如何让它工作吗?任何语言都可以,PowerShell、C#、C++、Python...
谢谢。