通过控制台更改Windows上的屏幕亮度

通过控制台更改Windows上的屏幕亮度,windows,winapi,autohotkey,screen-brightness,Windows,Winapi,Autohotkey,Screen Brightness,我正在尝试为Windows10编写一个简单的控制台应用程序,用于更改屏幕亮度。最终,我想使用这个应用程序的自动热键,但这是次要的 在研究这一点时,我发现几乎所有的东西都与安卓有关,但这并没有帮助。我确实发现了用C改变屏幕亮度的方法,但不幸的是,这是针对Linux的 包含一个脚本,虽然看起来很粗糙,但给人留下了很好的印象 已弃用,在许多[系统]上,它不会返回完整的亮度设置阵列。所以,在应该有8个级别的地方,IOCTL\u VIDEO\u QUERY\u DISPLAY\u亮度将只返回6,或者根本不

我正在尝试为Windows10编写一个简单的控制台应用程序,用于更改屏幕亮度。最终,我想使用这个应用程序的自动热键,但这是次要的

在研究这一点时,我发现几乎所有的东西都与安卓有关,但这并没有帮助。我确实发现了用C改变屏幕亮度的方法,但不幸的是,这是针对Linux的

包含一个脚本,虽然看起来很粗糙,但给人留下了很好的印象

已弃用,在许多[系统]上,它不会返回完整的亮度设置阵列。所以,在应该有8个级别的地方,IOCTL\u VIDEO\u QUERY\u DISPLAY\u亮度将只返回6,或者根本不返回。(作者:jkiel)

因此,我更愿意使用
WmiMonitorBrightness
类()而不是
IOCTL\u VIDEO\u QUERY\u SUPPORTED\u BRIGHTNESS
。它还提供了更精细的粒度。但我缺乏正确使用它的技能

如何从C或自动热键应用程序中使用
WmiMonitorBrightness
类来更改Windows 10上的屏幕亮度?

寻找一个,我从2008年开始发现,它对我在Windows 10上的工作非常有吸引力。开发人员提供了C#源代码和编译的应用程序。“您需要Microsoft.NET Framework 2.0或更高版本才能使应用程序正常运行。”

此外,它还支持在屏幕上设置亮度的完整粒度

要使用console应用程序,允许使用以下参数:

  • DisplayBrightnessConsole.exe 这将返回当前亮度级别
  • DisplayBrightnessConsole.exe-GetLevel 这将返回显示器接受的所有可能的亮度级别,以新行分隔
  • DisplayBrightnessConsole.exe20(或其他亮度级别编号) 这将显示器的亮度水平设置为给定的参数,在本例中为20
该代码目前仅适用于单显示系统。如果您的系统有多个显示器,则 将仅在第一个(通常是主)显示器上工作。修改它以支持更多功能应该相当容易


可能对使用python的人有帮助-但在我的特定情况下没有帮助:


您实际上想用什么语言编写此代码?你想用C写它,然后用自动热键调用它吗?或者您更喜欢在AutoHotKey中本机运行的例程?因为它与速度无关,所以使用C并将其编译为.exe,然后从AHK调用该程序是一个可行的选择。不幸的是,我不能很好地使用C语言,而且我没有找到本地的AHK选项。相关元帖子: