美文网首页
使用 DDC/CI 协议自动调整显示器亮度

使用 DDC/CI 协议自动调整显示器亮度

作者: 洋子该昵称已被占用 | 来源:发表于2020-08-28 11:37 被阅读0次

原文连接: https://purocean.github.io/%E4%BD%BF%E7%94%A8ddc-ci%E5%8D%8F%E8%AE%AE%E8%B0%83%E6%95%B4%E6%98%BE%E7%A4%BA%E5%99%A8%E4%BA%AE%E5%BA%A6/

背景

这几天新入了一个显示器 戴尔 D2720DS 感觉很不错,屏幕大 27寸,分辨率高 2k,能横着竖着升降,使用很方便。比起我 6 年前买的那个 21 寸 显示器好得多。
但是这几天使用下来,发现了了一个非常不方便的事情:白天我需要讲显示器亮度调高,晚上又要调低,非常的繁琐。这款显示器又是比较呆的,也没有一键切换情景模式的功能。好在找到了一个可以使用软件调整显示器亮度的方法,这就是 DDC/CI 协议[1]

开启 DDC/CI

我这款显示器是支持 DDC/CI,看使用手册[2] 开启 DDC/CI 功能,其他显示器可以参考官方说明。

然后在安装官方驱动程序[3]。也许不用安装驱动程序也可以搞,我没试过,这里直接就安装了。

DDC/CI 命令行工具

这里我找到了一个可以用 DDC/CI 命令行程序,在 GitHub 开源的。
https://github.com/hensm/ddccli

使用方式还是很简洁。但是只有 两颗星星,这么好的工具,赶紧给作者加一个。

看代码就是调用 windows 的库来实现的。另外作者也给出了 nodejs 的库[4]

ddccli 使用方式:

Usage: ddccli.exe [options]
Utility for setting brightness/contrast on connected monitors via DDC/CI.

    -b, --brightness
        Sets monitor brightness
    -B, --get-brightness
        Gets monitor brightness
    -c, --contrast
        Sets monitor contrast
    -C, --get-contrast
        Gets monitor contrast
    -h, --help
        Prints this help message
    -v, --version
        Prints the version number
    -l, --list
        Lists connected monitors
    -m, --monitor
        Selects a monitor to adjust. If not specified, actions affects all monitors.

编写脚本

这里我就尝试直接使用 bat 脚本来调用这个软件了,不搞那些花里胡哨的,直接上代码。

@echo off

set "t=%time: =0%"
set "t=%t:~,5%"
set val=30

if "%t%" geq "09:00" set val=70
if "%t%" geq "19:00" set val=30

echo %val% %t%

"%~dp0ddccli.exe" -b %val%

保存上面的脚本为一个 bat 文件即可,需要注意 ddccli.exe 需要和这个 bat 文件放在一个目录。

定时执行

现在这个脚本已经能在 9 点到 19 点之间保持 70% 的亮度,其他时候30% 的亮度。当然可以更精细化调整甚至根据日出日落,或者买个光线传感器来做调整。这里已经可以满足我的需要了。

使用 Windows 的任务计划程序可以设置让这个脚本每隔 10 分钟执行一次。


这里使用一个 vbs 脚本来隐藏脚本执行时候弹出的黑乎乎的窗口。

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c "&WScript.Arguments(0) ,vbhide

注意不能使用其他用户运行等设置来隐藏这个窗口,因为因为程序要获取显示器资源来操作。使用 vbs 方式可以避免这个问题。


  1. https://baike.baidu.com/item/ddc/ci

  2. Dell D2720DS 用户指南

  3. Dell D2720DS 驱动程序

  4. https://github.com/hensm/node-ddcci

相关文章

  • 使用 DDC/CI 协议自动调整显示器亮度

    原文连接: https://purocean.github.io/%E4%BD%BF%E7%94%A8ddc-ci...

  • Mac控制外接屏幕亮度

    Mac使用ddcctl控制外接屏幕亮度(注:需要显示器支持ddc.ci) 1 clone 2 make 3 设置显...

  • 如何更改 Mac 显示器的亮度?

    如果更改 Mac 显示器的亮度可以手动或自动调整显示器的亮度。 使用亮度功能键 如果屏幕看起来太亮或太暗,可以调整...

  • HDMI EDID

    HDMI 接口及CEC信号 EDID是什么,跟显示器有什么关系? I2C总线-DDC传输协议-显示器EDID结构介绍

  • Android : 屏幕亮度的调整

    关于屏幕亮度的调整可以从以下几个方面入手: 判断是否开启了自动亮度调节 **获取屏幕的亮度 ** **设置亮度 *...

  • 显示器自动调节亮度

    新入手一个T470P,结果显示器在从网页切换到桌面时屏幕自动调节亮度; 由暗变亮,由桌面再切换回网页又来一次; 解...

  • fundamentals——亮度调整

    可以看见图片的通道 自动色调 自动对比度 自动颜色 调整 亮度对比度 静态 动态调整 静态:如上 动态:添加调整层...

  • 前端阅读体验优化-GitBook自动换肤

    新键盘入手,HHKB Professional 2 Type-S 通过侦听显示器亮度,或根据当地时间,实现自动换肤...

  • 配置gitlab-runner定时流水线

    使用gitlab-ci执行自动化部署,参照gitlab-runner执行自动化CI/CD部署,每当想gitlab提...

  • Photoshop小白之调整图片

    一、调整图片(所有调整均为微调) 亮度/对比度:亮度用于调整整个图片的明亮程度,调整亮度时应慢慢调整,选择自己认为...

网友评论

      本文标题:使用 DDC/CI 协议自动调整显示器亮度

      本文链接:https://www.haomeiwen.com/subject/odflsktx.html