HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0124
こいるonkeyのキーコード299について2解決


こいる

リンク

2020/1/24(Fri) 14:56:49|NO.89331

onkeyについて、
以下のキーを押すと、どれも「299」を返しました。

・半角全角
・CapsLock
・変換
・カタカナ/ひらがな


で、この中からどのキーを押したのか判別したくて「getkey」を使ったのですが、

240 CapsLock, 半角全角
242 カタカナ/ひらがな, 変換, 半角全角
243 CapsLock, カタカナ/ひらがな, 変換, 半角全角
244 半角全角

こんな風にキーコードがたくさんのキーとかぶってしまい、
判別ができなくなっている状況です。

どうすればうまく判別ができるのでしょうか?



この記事に返信する


沢渡

リンク

2020/1/24(Fri) 16:55:07|NO.89332

onkeyの後のwparamの数値のことを言っているのでしょうか?
299ではなく229(VK_PROCESSKEY)だと思うのですが、
いずれもIMEに関わるキーなので、早い段階で「IME絡みの操作である」という
情報に置き換えられてしまうようです。

こちらを参考に、MapVirtualKeyでlparamを加工する方法で
取得してみましたが、どうでしょうか。
http://hsp.tv/play/pforum.php?mode=pastwch&num=62640
ただ、いずれのキーも押すとIMEの状態を変化させてしまうので、
できれば何かしらの機能を割り当てること自体避けた方が良いと思うのですが…。


#include "user32.as" onkey gosub *test stop *test MapVirtualKey (lparam>>16)&0xFF,1 : key=stat mes key return



こいる

リンク

2020/1/24(Fri) 19:24:26|NO.89335

返信ありがとうございます!

スキャンコードを仮想キーコードに変換することで取得できるのですね。
http://tokovalue.jp/function/MapVirtualKey.htm

動作もばっちりです。ありがとうございます!

>できれば何かしらの機能を割り当てること自体避けた方が良いと思うのですが…。
お気遣いありがとうございます。
しかし、機能を割り当てたいのではなく、
どのキーを押したのかを判別したいだけですので大丈夫です。


ありがとうございました。



ONION software Copyright 1997-2018(c) All rights reserved.