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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0927
hsploverキーを押しっぱなしにする1未解決


hsplover

リンク

2016/9/27(Tue) 10:39:11|NO.77007

keybd_eventを使用してキーを押しっぱなしにしたいです。
keybd_event 16をすれば、Shiftキーを押しっぱなしにすることが出来、keybd_event 16,,2で解除することが出来ました。

ところが、keybd_event 65をやっても[a]は一度限りしか入力されません。つまり、押しっぱなしの状態にはなってないのです。

どのようにすれば良いのでしょうか、よろしくお願いします。


#uselib "user32.dll" #func keybd_event "keybd_event" int, int, int await 5000 keybd_event 65 await 10000//この間押しっぱなしになってて欲しい! keybd_event 65,,2 end



この記事に返信する


MillkeyStars

リンク

2016/9/27(Tue) 12:57:44|NO.77008

押しっぱなしの状態にはなっています。
ただウィンドウメッセージが送られてきてない状態です。

キーボードドライバはキーが押された場合、一定の間隔で keybd_event を実行します。
同時にシステムは、現在キーフォーカスのあるウィンドウに対して、WM_KEYDOWN メッセージを送信します。

主の場合、最初の一回しかキーの情報を送っていないので、単純に押し下げただけの状態です。
システムに「まだ押してるよ」という情報を送ってあげないと、システムはウィンドウメッセージを発行してくれないのです。



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