我正在编写一个可以根据用户输入更改屏幕亮度的代码,但这是基于当前屏幕亮度的。有没有办法从命令提示符处以整数形式获取屏幕亮度?
过去,我曾尝试通过在 cmd 中使用 Power Config 实用程序来执行此操作,但失败了。我尝试查找它并没有找到任何适用于 Windows 的内容。我找到的最近的解决方案是针对 IOS 和 Android。
尝试以下操作后我迷路了:
C:\Users\[me]>powercfg /q | find "(Display brightness)"
Power Setting GUID: aded5e82-b909-4619-9949-f5d71dac0bcb (Display brightness)
C:\Users\[me]>
Run Code Online (Sandbox Code Playgroud)
我希望返回一个像“45”或“45%”这样的屏幕亮度值,但它给了我一个显示 ID。我该怎么办?
查询屏幕亮度
powershell -Command "Get-Ciminstance -Namespace root/WMI -ClassName WmiMonitorBrightness | Select -ExpandProperty "CurrentBrightness""
Run Code Online (Sandbox Code Playgroud)
更改屏幕亮度
powershell -Command "(Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1,<YOUR_BRIGHTNESS_INTEGER>)"
Run Code Online (Sandbox Code Playgroud)
你很接近。以下是具体操作方法。
powercfg 的格式为:
POWERCFG -SETDCVALUEINDEX <SCHEME_GUID> <SUBGROUP_GUID> <SETTING_GUID> value
Run Code Online (Sandbox Code Playgroud)
要查找您的信息:
为了<SCHEME_GUID>:
powercfg /q | findstr Scheme
Power Scheme GUID: a3e508ca-5ab1-4c55-bee1-9edfb71ba0a4 (HP Optimized (recommended))
Run Code Online (Sandbox Code Playgroud)
对于<SUBGROUP_GUID>和 <SETTING_GUID>:
powercfg /q | findstr Display
Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40ca19 (Display)
Power Setting GUID: aded5e82-b909-4619-9949-f5d31dac0bcb (Display brightness)
Run Code Online (Sandbox Code Playgroud)
现在 GUID 值和亮度以百分比表示 - 比方说23% - 如下所示:
powercfg -SetDcValueIndex a3e508ca-5ab1-4c55-bee1-9edfb71ba0a4 7516b95f-f776-4464-8c53-06167f40ca19 aded5e82-b909-4619-9949-f5d31dac0bcb 23
Run Code Online (Sandbox Code Playgroud)
编辑:要查看当前的亮度级别:
使用以下命令检查您当前的设置GUID:aded5e82-b909-4619-9949-f5d71dac0bcb
只要让powercfg /q > current_settings.txt. 将输出保存到current_settings.txt文件并在那里搜索aded5e82-b909-4619-9949-f5d71dac0bcb.
例如我的:
Power Setting GUID: aded5e82-b909-4619-9949-f5d71dac0bcb (Display brightness)
Minimum Possible Setting: 0x00000000
Maximum Possible Setting: 0x00000064
Possible Settings increment: 0x00000001
Possible Settings units: %
Current AC Power Setting Index: 0x00000046
Current DC Power Setting Index: 0x00000032
Run Code Online (Sandbox Code Playgroud)
该值表示百分比 (%)。增量可以达到 1%(如您所见)。
甚至还有关于亮度的 MSDN 页面