笔记本电脑和平板电脑的屏幕亮度控制
一个小型程序,用于快速调整笔记本电脑或平板电脑的屏幕亮度。

引言
使用这个小工具,您可以快速调整笔记本电脑或平板电脑的屏幕亮度。它还支持命令行参数,以满足您的需求。
背景
我最近买了一台平板电脑,但对如何改变屏幕亮度不太满意。因此,我在网上搜索了一个简单的解决方案 - 但没有成功。首先,我找到了 IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS 控制,但很多人都在努力用 C# 调用它 - 事实上,我只找到一个人似乎设法做到了……但这个帖子已经关闭,我找不到联系他的方法 - *lol* - 所以我尝试了一些人建议的另一种解决方法,结果搞砸了我的伽马和对比度设置 - 哈哈 - 最后我找到了 Samuel Lai 的这个页面 - 他使用 WMI 访问屏幕亮度控制制作了一个简单的侧边栏小工具,并提供了一些代码 - 有趣的是,在我搜索的过程中,我经常读到有人说 C# 中没有支持。后来,我意识到我应该仔细看看 IOCTL_VIDEO_QUERY_DISPLAY_BRIGHTNESS 控制 站点,因为微软在这里说这个控制不再受支持,应该使用 WmiMonitorBrightness 类... 好吧,无论如何 - 够了,别说了 :)
使用代码/程序
程序
我已经在 Win7 (x86) 上测试了这个程序 - 据我所知,它在普通 PC 上无法工作,因为它们没有为此所需的硬件支持。如果系统不兼容,将会弹出一个消息框,并且程序将会退出。
我使用 VS2010 和 .NET 4 构建 - 因此,您需要 .NET 4 才能运行该程序,并且需要 VS2010 才能更改代码... 也许您可以使用较低版本的 VS,但据我所知,设计器不兼容。
好的,当不带参数启动程序时,它将隐藏并在任务栏信息区中显示一个图标。单击该图标会显示滑块。右键单击该图标将打开一个退出弹出窗口。
参数
quit
- 滑块会显示出来,并在不活动 4 秒后关闭。show
- 滑块会显示出来,并在不活动 4 秒后隐藏。
实际上,您可以输入任何内容来获得此结果 - 除非它未在此处列为参数...^^hide
- 将最初隐藏表单 - 这仅在与亮度级别语句结合使用时才有用brightnesslevel in %
- 您可以传递一个级别语句以立即设置亮度(例如 25%)- 如果参数不在级别数组中,则该级别将设置为下一个更高的可用级别
参数由空格分隔!
例如:ScreenBrightness 10% quit
ScreenBrightness hide 55%
参数的顺序无关紧要。
代码
好的,我已经使用了来自 Samuel Lai 的 WMI 查询,并封装了视觉效果...WmiMonitorBrightness
类提供了一些关于实际亮度设置的只读属性:Active
、CurrentBrightness
、InstanceName
、Level
和 Levels
。
一个值得关注的点可能是 Level
属性,因为它是由硬件支持的有效 brightnesslevels
数组。它们可能因机器而异。例如,我的笔记本电脑只有 7 个级别,而我的平板电脑有 10 个。
我的应用程序只支持一个屏幕 - 如果您有多个屏幕,则需要分别查询每个屏幕,正如我所理解的……虽然我看不到设置单个屏幕亮度的方法……?
WmiMonitorBrightnessMethods 类
用于通过 WmiSetBrightness 方法 设置屏幕亮度。
祝好,
Stephan
历史
- 2011 年 8 月 4 日:初始版本
- 2011 年 8 月 6 日:小更新
- 在图标的工具提示文本中包含实际亮度值
- 打开窗体或将鼠标移动到图标上时,窗体的实际亮度值将刷新