木曜日, 8月 14, 2008

バックライト

レジストリのバックライトの情報を書き換えても反映されなかったので、プログラムでレジストリを変更後、
HANDLE hBackLightEvent = CreateEvent(NULL, FALSE, TRUE, TEXT("BackLightChangeEvent"));
if (hBackLightEvent) {
SetEvent(hBackLightEvent);
CloseHandle(hBackLightEvent);
}
として、イベントを発生させてみた。が、うまくいかない。

SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
として、レジストリの変更を反映させるメッセージを発行してもうまくいかない。

うーん。

結局

[設定]-[システム]-[バックライト]
をキーボードに割り当てることに。


バックライト.lnk
と名前のショートカットファイルを作成
中身は
\Windows\ctlpnl.exe cplmain.cpl,6


上記のファイルを
\Windows\スタートメニュー\プログラム
にコピー
(このフォルダに置くと、以下の手順で選べる)


[設定]-[個人用]-[ボタン]
で、適当なボタンに対して、プログラムの割り当てから
バックライト
を選ぶ。

これで、普段は暗くしていて、明るいところに出たときも、ボタン操作だけで、画面を明るくできそう。

土曜日, 8月 09, 2008

S11HTのバックライト

バックライトの輝度を変更するには、レジストリを変更すればいいのだが。。。
MortScriptにて

bl = RegRead("HKCU", "ControlPanel\BackLight", "Brightness")

Switch (bl)
Case (1)
bl = 10
Case (2, 3, 4, 5, 6, 7, 8, 9, 10)
bl = 1
EndSwitch

RegWriteDWord("HKCU", "ControlPanel\BackLight", "Brightness", bl)

とすると、レジストリの値は変更されるが、S11THでは、ソフトウェアリセットをしないと、適用されない。
BackLightChangeEvent
なるイベントを発生させる必要があるようだ。ただ、MortScriptでイベントを発生させる方法はよくわからない。VS2005を使って、コードを書いてみよう。

S11HT

S11HTにインストールしたソフト

MortScript
Google Maps for Mobile
GSFinder + WM5
PocketHpte
TRE(Tascal Registry Editor)