我正在開發Windows 8應用程序。有沒有一種方法可以訪問設備的亮度設置,以便用戶可以從應用程序內部調整設備的亮度?由於調整Windows 8應用程序的屏幕亮度
回答
內置的Windows工具PowerCfg
可以動態更改亮度...
通常PowerCfg
從CMD行或批處理文件調用,但你也可以從你的應用程序中使用Process.Start
調用它。
使用的PowerCfg你需要知道的幾件事情:
- 的方案GUID:這是您要更改電源使用方案相關聯的GUID。
- 小指導:哪個guid與您想要更改的力量設置組關聯。
- 設置指南:哪個guid與您要更改的電源設置組中的實際設置相關聯。
- 範圍或索引值:最後,您需要知道要將該設置更改爲什麼值...某些設置有一個範圍,您可以將其設置爲該範圍內的任何值,某些設置具有列表的值來選擇,你需要知道你想要的值的索引。
的方案GUID實際上是最難得到的,因爲用戶可以定義新的方案,因此,GUID需要通過調用PowerCfg -getactivescheme
其他的GUID發現都是常數,可以是通過運行PowerCfg - query
一旦你把所有的GUID一字排開,你可以設置每個設置的AC(電源插入)和直流(電池)價值發現。搭配:
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
希望幫助辦好了!
謝謝。 [我寫了一個腳本](https://gist.github.com/jay/2c4ca23314f1ed31c24da390d86c2b23)基於腳本中的批處理命令,以便我可以執行'setbrightness 12'或其他任何操作。我的筆記本電腦只使用亮度熱鍵以10爲增量進行設置,但在黃昏時,10級太暗,20級太亮,所以我經常使用腳本在這兩個值之間設置一個可容忍的級別。 – Jay
我正在使用批處理文件來改變東西,但它也看起來像Windows提供了一個API,你可以直接從C#(以及p/Invoke然後調用)以及...因此,所有上述的情況仍然如此,將仍然可以工作,但你也可以撥打
這些鏈接都不錯過,因爲他們已經列出的所有子的GUID爲你而出。所以只是P /調用那些壞男孩,並直接從你的應用程序打電話給他們,沒有批處理文件需要:)
這是正確的答案,但我發現你必須[設置有功功率方案](https://github.com/HubKing/LinkBrightness/blob/e8168f1e995622a3aa67797f6a97ca316c6ff7ed/LinkBrightness/Program.cs#L536-L543)到當前在設置當前電源方案的值後,Windows才能正確更新它們。否則,您可能會收到未定義的行爲。有關更多信息,請參閱[相關PR](https://github.com/HubKing/LinkBrightness/pull/1)中的註釋。 – Jay
- 1. 在Mac OS X應用程序中調整屏幕亮度
- 2. 使用C調整屏幕亮度#
- 3. 使用swift調整主屏幕亮度
- 4. Windows Phone 8應用程序的屏幕寬度
- 5. Fedora 22 - 無法調整屏幕亮度
- 6. Android 2.2:調整屏幕亮度
- 7. 在Windows Phone 8中調整亮度
- 8. iOS 7自動亮度控制應用程序屏幕亮度設置
- 9. 如何調屏幕亮度
- 10. 將屏幕亮度控制添加到Android應用程序
- 11. 有沒有通過編程調整屏幕亮度的方法?
- 12. 在iOS中終止應用程序時恢復屏幕亮度
- 13. 屏幕亮度控制程序
- 14. 彈出使用整個屏幕的寬度和高度 - Windows應用程序
- 15. 改變屏幕亮度的onPause(Android應用程序)
- 16. Monodroid - 如何以編程方式調整設備屏幕亮度?
- 17. Windows 8應用程序中的屏幕分辨率檢測
- 18. Windows 8開始屏幕上的java應用程序
- 19. 如何處理在Windows 8應用程序的屏幕旋轉
- 20. C#設置屏幕亮度Windows 7
- 21. 改變屏幕亮度時,自動亮度調節啓用
- 22. 在iOS中用Swift調整/觸摸屏幕亮度
- 23. Windows 8智能屏幕不允許簽署clickonce應用程序
- 24. Windows Phone 8:在應用程序購買屏幕上不顯示
- 25. iPhone - 有沒有辦法調整設備級的屏幕亮度
- 26. 如何調整筆記本電腦屏幕的亮度顯示
- 27. 通過代碼調整屏幕的亮度
- 28. Windows 8應用程序全屏webview C#
- 29. 如何調暗屏幕亮度完全
- 30. 如何在桌面應用程序中調出Windows 8屏幕鍵盤
歡迎來到堆棧溢出。你到目前爲止試過_anything_嗎?請閱讀[常見問題],[問]和[幫助]作爲開始。 –