アドエスのUSBにBluetoothを挿しっぱなしにする方法
- 2009/05/14 20:03
- カテゴリー:マニアックなおはなし
BluetoothをUSBに取り付けたことで,アドエスはサスペンドしなくなります。私の場合,電話としてアドエスを使いませんし,メールもプッシュで受け取りませんので,サスペンドにならないことそのものは別にどうでもいいことなのですが,だからといってLCDが単純に消えると言うだけでは,CPUもメモリも動き続けていますから電池があっという間に切れてしまいます。
だから,私の場合電源をOFFにしてキーロックが出来ればそれが一番良いわけです。
しかし,定番アプリであるlock2suspend.exeは,サスペンドに入れる機能はあっても電源を切るという機能はありません。
困ったなあといろいろ調べていたのですが,なかなかアクロバットなことでどうにか実現しました。複数のアプリケーション間の非同期タイミングで動作している感じですので,私自身の備忘録として,ここに書いておきます。
・用意するもの
lock2suspend.exe
MortScript4.1
KLChgExec
・基本的な流れ
キーロックスイッチがONになったら,KLChgExecがONになったことを検出,MortScriptでスクリプトを実行。
もしTCPMPが起動中の場合には,LCDを消しておしまい。
それ以外なら,5秒間ウェイトさせる。しかしlock2suspend.exeも常駐しており,この5秒間の間に通信の切断とLCDの消灯が起こる。
そしてキーロックスイッチがONになった時刻を起点として5秒後に,電源がOFFになる。
キーロックスイッチがOFFになると,今度はlock2suspend.exeによって起動し,通信の接続も行われる。(てことは,やはりlock2suspend.exeにとって電源OFFもサスペンドも同じ,ということなのかなあ)
・設定
(1)電源をOFFにするために,MortScriptのスクリプトを用意する。PowerOff.mscrとして保存しておく。私の場合はMortScriptと同じフォルダに入れておいた。
If( ProcExists("player.exe") = 1)
ToggleDisplay(0)
Else
Sleep(5000)
PowerOff
EndIf
Exit
(2)次にKLChgExec.iniを以下のように記述する。
[KLCHGEXEC]
KEYLOCK_ON_APP=\Program Files\MortScript\PowerOff.mscr
KEYLOCK_ON_ARGS=
(3)lock2suspend.exe用に,notconf.txtを以下のように書いておく。
notsuspend=TCPMP
notdisconnect=TCPMP
(4)lock2suspend.exeを,/force /disconnect /connect /keepmodemで常駐させる。
(5)KLChgExecも常駐させる。
・運用
キーロックスイッチをONにしても,TCPMPが動いている時には,LCDが消えるだけ。
それ以外の場合には通信の切断が始まる。同時に5秒後に電源が切れるように設定される。通信の切断は5秒以内に終わるはずなので,切断されてから電源OFFになる。この段階で点滅していたBluetoothのLEDが消灯すればOK。
電源が切れた状態でキーロックスイッチをOFFにすると,今度はlock2suspend.exeだけで起動し,通信の接続も行われる。ここでMortScriptを使っていろいろやってみたが,LCDが点灯と消灯を繰り返したりして動作が不安定だったので,ややこしいことはしないでlock2suspend.exeにおまかせ。
USBになにも繋がっていない場合にも上記と同様の動きになるはずで,キーロックスイッチがONになってから5秒後に電源が切れているはず。(というのも,外側からは電源が切れているのかLCDが消えているのかサスペンドなのか見分けが付かない)
電源が切れてからキーロックスイッチをOFFにすると,これも上記と同様にlock2suspend.exeによって電源が入り,通信の再接続が始まる。
問題点
キーロックスイッチがONの時に電源ボタンが押された場合,とても困った事が起きる。
電源ボタンだけはキーロックスイッチでもマスクされないため,せっかく電源が切れた状態にあっても,電源ボタンに触れてしまうと,キーロックスイッチがONのままアドエスが立ち上がってしまう。
USBになにも刺さっていないなら,そのまま1分ほどでサスペンドに入るため問題はないのだが,USBにBluetoothが刺さっている状態ではサスペンドに入ることはないので,ずっと動作状態のまま。
/forceオプションで画面をすぐに消すようにしてあっても,実際には動作している状態なのでBluetoothのLEDも点滅をしているし,おそらくこのままなら数時間で電池が切れてしまうはず。
この状態を発見した場合,電源ボタンで電源を切ることが出来ないので,結局キーロックスイッチを一度OFFにし,再度ONにしないといけないので,大変面倒。電源ボタンを無効にする方法があったら解決なんだが・・・
ということで,問題点は積み残していますが,一応USBコネクタにBluetoothを差し込んだままで使い続けられそうな感じです。
しかし,この電源ボタンの対策だけは,もうどうにもならんだろうなあ。