トップページ⇒tech
14コメント3KB

Windowsでキーをエミュレート

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/06/23(火) 09:34:40
Windows XP
VC++ 2008
を使ってます。


キーボードを押したように擬似させるプログラムをつくろうとしています。

sendInputというAPIを使うことでエディタやブラウザは制御できたのですが、ゲームはうまく動かせないんです。


spy++でメッセージをキャプチャしたところ、sendInputを使う場合と実際にキーボードを押す場合に違いはないように見えます。



どうすれば動かせるか御教授ください!
0002デフォルトの名無しさん2009/06/23(火) 09:45:16
ネトゲかよ
nProかなんかにでもはじかれてるんだろ
0003デフォルトの名無しさん2009/06/23(火) 09:48:27
ネトゲじゃなくてエミュレータ(SNESGT)です ><
0004デフォルトの名無しさん2009/06/23(火) 10:46:53
keybd_event関数
0005デフォルトの名無しさん2009/06/23(火) 11:26:38
>4
Windows NT/2000/XPからKeybd_eventは SendInputに取って代わったという情報があったのですが。

調べてみたところ動作はどちらも同じらしく、実際に使ってみましたが変わりないように思えます…
0006デフォルトの名無しさん2009/06/23(火) 12:14:17
>>1
マクロで楽しようとたくらんでる厨房か工房ですよね、わかりますよ^^
0007デフォルトの名無しさん2009/06/23(火) 13:25:10
えぇ、そうです。

どうしたらいいものですかね?
0008デフォルトの名無しさん2009/06/23(火) 13:43:56
今すぐ消えてください^^
0009デフォルトの名無しさん2009/06/23(火) 13:50:41
orz


1秒間に20回の頻度でメッセージを送ると時折反応するんですが、
毎回反応するわけではないようです。。。
0010デフォルトの名無しさん2009/06/23(火) 13:54:02
キーを押すイベントと離すイベントの間に時間待ちが無いだけじゃないだろうな
0011デフォルトの名無しさん2009/06/23(火) 14:01:58
単独スレにする必要は無いだろう。
次からはくだ質で。


DirectInput SendInput で検索すると色々出るけど、コレ
http://d.hatena.ne.jp/anon_193/20090504
なんてどうだ?


時折反応というのは、>>10 とか似たような原因も考えられるな。
0012デフォルトの名無しさん2009/06/23(火) 14:13:33
>>10様
いやー、おっしゃるとおりでした!

実際にキーボードを押した場合にspy++でキャプチャしたメッセージのポストされた時間がどうなってるかを調べたところ、125ミリ秒間があることが分かりました。
そこでKEY_UPとKEY_DOWNの間にSleep(125)を入れたところ、無事認識してくれました。

ありがとうございました!
0013デフォルトの名無しさん2009/06/23(火) 14:15:44
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0014デフォルトの名無しさん2009/06/23(火) 20:05:36
最近のアイちゃんはレベルが低くなったな
■ このスレッドは過去ログ倉庫に格納されています