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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0820
トレストイナgetkeyの不具合のような・・・4解決


トレストイナ

リンク

2010/8/20(Fri) 00:46:14|NO.34514


repeat redraw 0 color white:boxf:color black ; テンキーの[0] getkey key,96 pos 0,0 if key { mes "押されている"+key }else { mes "押されていない"+key } redraw 1 wait 1 loop

上のスクリプトでテンキーの『0』を押したままNumLockを押すと『0』を押さなくてもずっと押されたままの状態に誤認されてしまいます。
しかもプログラムを再起動しても『0』が押されたままになってしまいます。

この現象を回避する方法はないでしょうか?



この記事に返信する


ANTARES

リンク

2010/8/20(Fri) 05:42:35|NO.34517

>この現象を回避する方法はないでしょうか?
 原則的にはないと思われます。
初期状態がテンキーモードなら、NumLockキーを押すと
カーソルモードになり、テンキーの0はカーソルモードでは
Insertキーとなり、Insertキーはモードキーですから、
もう一度押すまで同じ状態が保持されます。
 NumLockキーをもう一度押すのが最も一般的な解決法でしょう。

 以前、気づかずにうっかりScrollLockキーを押してしまい、
Excelの矢印キーの動作が変わって焦ったことがあります。



トレストイナ

リンク

2010/8/20(Fri) 18:17:22|NO.34535

やっぱり無いですか…。
せめてプログラムを再起動したら状態が元に戻ればいいんですが…。

一応解決にします。ありがとうございました。



Him

リンク

2010/8/20(Fri) 22:49:30|NO.34536

NumLockがOFFの場合、解放する


#uselib "user32.dll" #func keybd_event "keybd_event" int, int, int #func GetKeyState "GetKeyState" int repeat redraw 0 color $FF, $FF, $FF boxf color getkey key, 96 //NumLockの状態を取得 GetKeyState 144 if stat = 0 { keybd_event 96,,2 } pos 0,0 if key { mes "押されている"+key }else { mes "押されていない"+key } redraw 1 wait 1 loop



トレストイナ

リンク

2010/8/21(Sat) 11:12:24|NO.34542

ありがとうございます!



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