ThinkPadでは、Fn+Home,Endのキーを押すととで、ディスプレイの明るさを変更可能です。
このショートカットキーを押すと画面に現在の明るさが表示されますが、この値とwmiのWmiMonitorBrightnessにて取得したCurrentBrightness値の対応表を調べたのでメモしておきます。
表示値 CurrentBrightness 0 2 1 3 2 4 3 5 4 7 5 8 6 10 7 12 8 14 9 17 10 20 11 22 12 30 13 42 14 63 15 100 |
確認したPCはThinkPadX201sです。
見ての通り、画面の表示値に対して、CurrentBrightnessが比例するようではないようです。
表にすると以下のように表示が大きくなるに従いCurrentBrightnessの増え方が大きくなります。

プログラムからCurrentBrightnessの取得には、以下のコードを使用しました。
using System.Management; static int GetBrightness() { int curValue = -1; ManagementClass monitorInfo = new ManagementClass( "root\\wmi", "WmiMonitorBrightness", null ); foreach (ManagementObject obj in monitorInfo.GetInstances()) { try { curValue = Int32.Parse( obj[ "CurrentBrightness" ].ToString() ); } catch { curValue = -1; } break; } return curValue; } |
このプログラムを実行するためには、Windowsのwmiより該当の情報が取得出来ないといけないので、WinVista(サーバはWin2008)以降の必要があります。
WMIシステム管理開発テクニック
また、CurrentBrightnessの値ですが、MSDNによると以下の記述があり、明るさMaxを100としたときのパーセンテージのようです。
Current brightness as a percentage of total brightness. |
関連記事
コメントを残す