2016/08/23

KEYEVENTF_EXTENDEDKEY

zeKeyのメイン機能 キーコード送信にはSendInputを使っています
SendInputには KEYBDINPUT構造体に値をセットして渡すのですが dwFlagsには常にKEYEVENTF_EXTENDEDKEY(拡張キーフラグ)を付けていました

正しくは右Shiftやフルキーボードでいう矢印やDelの列のキー等に付くものなのですが 余計につけても動くという情報も見ましたし 実際動いていました

しかしVisual StudioのエディタでCtrl+ホイール(コードの拡大縮小)をしたところ不具合が出ました(その後のテストでShiftもおかしいと判明)

左Ctrlに拡張キーフラグがセットされているとKeyDownは認識されてコードの拡大縮小はできますが KeyUpは無視するようで通常のスクロールにはならず拡大縮小が継続されてしまいました(当然ですが右Ctrlなら拡張キーなので想定通りの動作になります)

セットするべきキーとセットしないキーは実際実験すればすぐわかるのですが Key列挙体には見た事もない実験のできないキーがたくさんあって困ってしまいます
仮想キーコードが決まれば拡張フラグも決まると思うのですがなんとかならないものか

現状 面倒なので左Alt Ctrl Shiftだけ付けないようにしていますw

0 件のコメント :

コメントを投稿