keyhookの判定トラブルNo.11287
western さん 23/04/30 18:36
 
レンダリング枠からの受け口が event == 10 で
keyhook は event == 11 でしょうか?

同じマクロや関数を keyhook のコールバックに指定している場合に
どのキーが押されているか? の判別を iskeydown を使って行う必要がある

そのタイミングで複数キーが押されてしまっている場合に
どちらが *後に* 押されて keyhook への割り当てが成立したかが区別出来ない

自分の例では、
Enter + Tab (改行して即時にタブ挿入) で Enter が keyUp される前に Tab キー
Left + Up  (左上にカーソル移動したい時) で Left が KeyUp される前に Up キー

と連続入力してしまう時に、両方のキーが iskeydown で有効となり、
判定時のロジックとして先に有効と判定した分岐に入ってしまった

上の自分の例では Enter 2回 / Left 2回 と判定されてしまった
複数キーが iskeydown されている場合は無効とすると、そちらも処理されない操作
ミスとなってしまう


keyhook の返り値(可能であれば keyhook のパラメータ1で指定したキーの組み合わ
せ数値も)
を geteventparam で取得できるようにならないか

よろしくお願いします

[ ]
RE:11287 keyhookの判定トラブルNo.11289
秀丸担当 さん 23/05/01 13:16
 
keyhookしたときのeventは、11にしてありました。
ヘルプに書いておきます。
IDやキーの値など、geteventparamで取得できたほうがいいです。
これらも追加しておきます。

[ ]