ThinkPadのFn+Home,Endでの明るさと、wmi\WmiSetBrightnessの関係

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.

関連記事

コメントを残す

メールアドレスが公開されることはありません。