2007年10月1日月曜日

KeyLock

KOTETUさんのところでKeyLockが公開されていました

アドエスのキーロックスイッチが硬くて操作しづらいのが不満だったので、使えるかも?と思って画面回転スイッチに割り当ててみました
KeyLock.exe自体はアドエスでも動作しましたが、アドエスのスライドスイッチでのキーロックとKeyLock.exeでのキーロックは全然違うものでした。

KeyLock.exeから移行するキーロック状態はWindowsMobileのシステムで用意されたもので、キーロックからの回復の仕方、キーロック時の画面表示、キーロック時のキー反応がアドエスの標準キーロックと異なります。

アドエスのキーロックとの違い
  1. キーロックからの回復は画面タップ2箇所か、キータッチ2箇所の組み合わせを実行する
  2. キーロック中はタッチパネルには反応しないが、どのキーにでも反応する
電源キー以外のキーにも反応するので、キーロックしてズボンのポケットなんかに入れて持ち運ぶと、wakeupしてしまう可能性が高いです。キーロックの機能としてはアドエスのほうが優秀です

メリットは
  1. キーロックしやすい

デメリットは
  1. 意図しないwakeupをしやすい
  2. キーロック解除手順が煩雑
って感じでしょうか。
とりあえず両方使ってみることにしたけど、欲を言うとキーロックでサスペンドして欲しい
KOTEUさんは要望を受け付けてないらしいので、サスペンドするキーロックを作ってみた
と言うほどのものではなくて、
VK_KEYLOCKとVK_OFFを送りつけてるだけです

ソース
#include
#include

//#define VK_KEYLOCK (VK_F22)

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{

keybd_event(VK_KEYLOCK, 0xff, KEYEVENTF_SILENT,0);
keybd_event(VK_KEYLOCK, 0xff, KEYEVENTF_KEYUP|KEYEVENTF_SILENT,0);

keybd_event(VK_OFF, 0xff, KEYEVENTF_SILENT,0);
keybd_event(VK_OFF, 0xff, KEYEVENTF_KEYUP | KEYEVENTF_SILENT,0);

return 0;
}

こんなので良いのか?という気もしますが exeファイル
問題が出たら使うのを止めます

uNClock もWindowMobileのキーロックステータスを見るようにしてみました。exeファイル
まだテストリリースなのでバージョンは無いです
WindowMobileのキーロック状態でwakeupすると、指定時間以内にキーロック解除しないとサスペンドしてしまいます。1秒では絶対無理で、5秒でも間に合わないことが良くあります
あまり実用的では無いかも

0 件のコメント: