CH3COOH(酢酸)が.NET FrameworkやWindows Mobileの事を始め、日々情報を発信中!

画面の明るさ(バックライトの輝度)を設定/取得する

Windows Mobileのコントロールパネルのシステムタブにある「バックライト」で輝度を変更出来ます。
今回は、プログラム上からバックライトの輝度を変更する方法をご紹介します。

S11HTのコントロールパネルのバックライト
S11HT(EMONSTER)の「バックライト」の設定画面です。このバッテリィ使用時と、外部電源使用時のバックライト輝度設定値は、それぞれ下記のレジストリに対応しています。

  • HKEY_CURRENT_USER\ControlPanel\Backlight\Brightness
  • HKEY_CURRENT_USER\ControlPanel\Backlight\ACBrightness

このレジストリ値を変更する事で、連動して画面の明るさ(バックライトの輝度)が変わります。

バックライトの輝度を設定する

    Using backLight As RegistryKey = Registry.CurrentUser.CreateSubKey("ControlPanel\Backlight")

        ' バッテリー駆動時 
        backLight.SetValue("Brightness", value)

        ' AC電源駆動時 
        backLight.SetValue("ACBrightness", value)

    End Using
    using (RegistryKey backLight = Registry.CurrentUser.CreateSubKey("ControlPanel\\Backlight")) {
        
        // バッテリー駆動時 
        backLight.SetValue("Brightness", value);
        
        // AC電源駆動時             
        backLight.SetValue("ACBrightness", value);
    }

バックライトの輝度を取得する

    Using backLight As RegistryKey = Registry.CurrentUser.CreateSubKey("ControlPanel\Backlight")

        ' バッテリー駆動時 
        Dim brightness As Object = backLight.GetValue("Brightness")

        ' AC電源駆動時 
        Dim ac_brightness As Object = backLight.GetValue("ACBrightness")

    End Using
    using (RegistryKey backLight = Registry.CurrentUser.CreateSubKey("ControlPanel\\Backlight")) {
        
        // バッテリー駆動時 
        object brightness = backLight.GetValue("Brightness");
        
        // AC電源駆動時            
        object ac_brightness = backLight.GetValue("ACBrightness");
    }

複数の端末に対応する際の注意点

ここで紹介したコードは実際にS11HT上にて動作確認を取っておりますが、バックライトの輝度情報が格納されているレジストリ名や設定値の有効な範囲等、OEMメーカーのハードウェアとドライバ(実装)に依存する為、前記のコードでは変更出来ない可能性もあります。

手元にある国内で流通している端末で確認してみた所、OEMメーカー毎によってこれだけ違いますので注意してください。

  SHARP Advanced/W-ZERO3[es] TOSHIBA X01T HTC S11HT
バッテリ使用時 BatteryBrightness Brightness BrightNess
外部電使用時 ACBrightness Brightness ACBrightNess
調整値 0~6 0~255 0~10

Copyright(C) since 2008 CH3COOH(酢酸). All Rights Reserved.