2007-11-18

Use10Key更新

先日キーロックスイッチによるサスペンド機能を追加したUse10Keyですが、 inahoさんから「マナーモードや運転モードのときもサスペンドします」とのご指摘を頂きました。
 
キーフック系のAPIをよくわかってないので 電話アプリに飛んでくるメッセージを捕まえてキーロックスイッチの操作を検出していたのですが、 実はマナーモードや運転モードの操作でも同じメッセージが飛んできてたようです。
 
やはり手を抜くとロクな事がないですね...。
 
という訳でメッセージが飛んできた時に HKCU\Software\Sharp\PhoneStatus\Status0を見てキーロックされたのかどうかを判定するように変更してみました。
 
ただ サスペンド機能は Use10Keyの趣旨とは違ってきているので、ちゃんとした方法で実装した方がいいのかもしれませんね。
 

3 件のコメント:

inaho さんのコメント...

修正ありがとうごさいました。
おかげで常駐アプリを1つ減らすことができました。

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

スタートアップにショートカットを入れたのですが、再起動しても機能が有効になりません。
ただ、起動していないわけではなく、ショートカットを実行すると常駐解除のメッセージが表示され、もう一度実行すると正常に動作します。
キーフック系じゃないので、MultiKeyHookへの登録は必要ないですよね?

kazuaki さんのコメント...

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

はい。MultiKeyHookへの登録の必要はありません。

問題は常駐できているけど、電話アプリのサブクラス化に失敗しているという事でしょうか...。
よく見るとサブクラス化に失敗しても何のエラーも出さないのはちょっと問題ですね。今度直しておきます(笑

ただ現状でもサブクラス化に失敗した場合は常駐せずに終了するはずなので不可解な動作ですね。
ちょっと再現できないか試してみます。