YTaskMgr 1.21 公開しました。昨日。
主な目的はZERO3Actionへの対応だったわけですが…
アップした翌日に試してみたらZERO3Action常駐してる状態で長押しするとメインウインドウが閉じてしまうことが判明orz
すみません。直します。
というわけで、せっかくなのでキー入力関係のメッセージが見えるツールを作ろうと思って作りました。
http://www.easy-creator.net/will-storage/KeyTest.zip
からDLできます。
ちなみに、このプログラムは WM_KEYDOWN が来たら無条件で SHRecognizeGesture します。
というわけで見てみましたが・・・・・・・
んんんー?
W-ZERO3は決定ボタンを長押ししても、キーコード0x0DのWM_KEYDOWNが来ない。くるのは0xE5です。
この0xE5というキーに関する情報は今までも色々見てみたんですが…
くらいしか書いてません。謎。
しかもIME PROCESSって…。変換キーのこと?
で、決定ボタンを離すと0x0DのKEYDOWNとKEYUPが一緒に来る。なんだこれ。
で、長押ししている間0x0DのKEYDOWNが来ないので、0x0DのKEYDOWNにあわせてSHRecognizeGestureを発行するようにすると長押ししても長押しのグルグルが出ないという事態になります。
というわけなのでZERO3用に作るなら良く分からないけど0xE5が来たらSHRecognizeGestureするようにしないといけません。納得いきませんが。
ZERO3Actionを常駐させると極めて普通な動作になりますね。
キーを押したらKEYDOWNが来て、離したらKEYUPが来る。
当たり前じゃんと言われそうですがZERO3Actionがないとなぜかこうなりません。なんのこっちゃ。
というわけで、普通に押したのはWM_KEYUPで判断、長押しはWM_CONTEXTMENUで判断すれば・・・
と思ったのですが、ソフトキーのメニューを操作してもWM_KEYUPが来てしまうようなのですよ・・・。
というわけで…
長押しはWM_CONTEXTMENUで判断。
普通に押したのは、0xE5または0x0Dのキーが押されてから、0x0Dのキーが離されるまでの間にWM_CONTEXTMENUおよびWM_COMMANDが来なかったら普通に押したと判断。ということにしたところうまく動いているようです。めんどい…
というわけでver-1.22をアップしたら寝ます。
明日が休みでよかった…
漢字キーだったりして(ぉ