在Windows 8应用程序中调整屏幕亮度

时间:2014-03-04 15:03:37

标签: c# windows-8 brightness

我正在开发Windows 8应用程序。有没有办法可以访问设备的亮度设置,以便用户可以从应用程序内部调整设备的亮度?感谢

2 个答案:

答案 0 :(得分:1)

我正在使用批处理文件来改变一些东西,但它看起来像Windows提供了一个API,你可以直接从C#(好的p / Invoke然后调用)......所以以上所有仍然是真的,仍然会工作,但你也可以打电话

PowerGetActiveScheme

PowerWriteACValueIndex

PowerWriteDCValueIndex

这些链接也很好,因为它们列出了所有Sub guids。所以只需P /调用那些坏男孩并直接从你的应用程序中调用它们,不需要批处理文件:)

答案 1 :(得分:0)

内置的Windows Utility PowerCfg可以动态改变亮度......

通常会从cmd行或批处理文件中调用PowerCfg,但您也可以使用Process.Start从您的应用中调用它。

使用PowerCfg时,您需要了解以下几点:

  1. 方案指南:这是与您想要更改的电源方案相关的指南。
  2. Sub Guid :哪个是与您要更改的电源设置组关联的guid。
  3. 设置指南:哪个是与您要更改的电源设置组中的实际设置相关联的指示。
  4. 范围或索引值:最后,您需要知道要将该设置更改为的值...某些设置的范围可以设置为该范围内的任何值,某些设置有一个值列表可供选择,您需要知道所需值的索引。
  5. 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

    运行它

    希望有所帮助!

相关问题