我正在开发Windows 8应用程序。有没有办法可以访问设备的亮度设置,以便用户可以从应用程序内部调整设备的亮度?感谢
答案 0 :(得分:1)
我正在使用批处理文件来改变一些东西,但它看起来像Windows提供了一个API,你可以直接从C#(好的p / Invoke然后调用)......所以以上所有仍然是真的,仍然会工作,但你也可以打电话
这些链接也很好,因为它们列出了所有Sub guids。所以只需P /调用那些坏男孩并直接从你的应用程序中调用它们,不需要批处理文件:)
答案 1 :(得分:0)
内置的Windows Utility PowerCfg
可以动态改变亮度......
通常会从cmd行或批处理文件中调用PowerCfg
,但您也可以使用Process.Start
从您的应用中调用它。
使用PowerCfg时,您需要了解以下几点:
Scheme guid实际上是最难获得的,因为用户可能已经定义了新的方案,因此需要通过调用PowerCfg -getactivescheme
来找到guid
其他guid都是常量,可以通过运行PowerCfg - query
一旦您排好了所有指针,您可以为每个设置设置交流(电源插入)和直流(电池供电)值。用:
POWERCFG -SETACVALUEINDEX <SCHEME_GUID> <SUB_GUID> <SETTING_GUID> <SettingIndex>
and
POWERCFG -SETDCVALUEINDEX <SCHEME_GUID> <SUB_GUID> <SETTING_GUID> <SettingIndex>
作为一个例子......这里有一个小批处理文件,用于关闭自适应亮度功能:
Echo Disable Adaptive Display Brightness Setting
for /f "tokens=2 delims=:" %%G in ('powercfg -getactivescheme') do set guid=%%G
for /f %%G in ("%guid%") do set guid=%%G
powercfg -setacvalueindex %guid% 7516b95f-f776-4464-8c53-06167f40cc99 fbd9aa66-9553-4097-ba44-ed6e9d65eab8 000
powercfg -setdcvalueindex %guid% 7516b95f-f776-4464-8c53-06167f40cc99 fbd9aa66-9553-4097-ba44-ed6e9d65eab8 000
前几行是获取方案guid,然后接下来的两行是设置实际值
你可以为显示亮度设置做一些非常相似的事情......这是这个子组和设置guid(与自适应亮度相同的子组):
Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40cc99 (Display)
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: %
要从C#应用程序中调用它,您可以动态构建cmd文件并使用Process.Start
希望有所帮助!