2008-03-08

Use10Key更新

Use10Keyを更新しました。
コメントでご連絡頂いていた キーロック解除時に画面が消えたままになっていた問題に対応したつもりです。
  • up1051.zip
    (03/09 追記)
    修正が不十分だったようですので、いったん引っ込めます。
 
Use10Keyでは /klsuspendや /klforceオプションが指定された場合、RequestPowerNotifications()を使って電源状態を監視しています。
キーロックが解除されたタイミングで監視スレッドもしていたつもりだったのですが、タイミングによっては監視スレッドが終了せずに画面が消されていたようです。
 
キーロック解除時に WaitForSingleObject()で監視スレッドの終了を待とうかとも思ったのですが、 電話アプリの中で待ち時間をつくるとよくなさそう(「Windows Mobileプログラミング徹底理解」で触れらていた「1秒ルール」?)なので、単純に監視スレッド内でキーロックが解除されているかどうかをチェックするようにしてみました。
 
そういえば NetFront v3.5のためにCPUの優先度をアクティブアプリ優先にしてみたところ、電話がうまく受けられなかった事がありました。
もしかしたら優先度か下がることによって 1秒ルールを破ってしまったのでしょうか。 もっと無駄を省けるように コードを見直してみないといけませんね。
 

4 件のコメント:

匿名 さんのコメント...

早速の更新、ありがとうございます。
あまりの対応の早さに感激です。

・・・ですが、症状はあまり改善しないようで、キーロックを解除しても画面が表示されません。

ふと思い、OSのバックライト自動消灯機能をOFFにしてみると、キーロック解除後にちゃんと画面が表示されました。
このまま使おうかとも思ったのですが、注意を見るとそういうわけにもいかず・・・

図々しいとは思うのですが、どうかご対応をお願いします。

kazuaki さんのコメント...

こんばんは。
検証ありがとうございます。

何度か試してみると やはり画面が戻らない事があるみたいです。
v1.3の修正では不十分だったということですね。

バックライト自動消灯を無効にした上で...というのは確認できていませんでした。
もう一度調べてみますね。

Masanori さんのコメント...

Use10Key利用させていただいています。
先日こちらの最新バージョン(現在停止中)を試してみた所、私もサスペンドからは復帰しないままでした。ほんの一瞬ふわっと見えて消えました。[es]の頃はKeyLockSuspenderを使っていましたが、やはり同じだったような気がします。サスペンド解除後は「終話」が仕様だと思ってました。変更できるという事なら便利ですが、もう慣れているのであまり気になりません(笑)
普段は画面オフの設定で、本体で1分後にサスペンドにしてます。結果同じ事かなと。
とりあえず報告でした。

kazuaki さんのコメント...

masanoriさん こんばんは。
コメントありがとうございます。

あまり真面目に見ていないのですが、少し見直した版で機会があるごとにキーロックを切り替えて試しています。
(今日だけで相当ボタンを痛めたような気が...(笑 )

頻度は減ってきているのですが、それでも画面が戻らない事があります。
やはりサスペンド関係は鬼門ですね。