ページ 1 / 1
SendInputについて
Posted: 2014年7月28日(月) 06:27
by のり
SendInputについてです.
SendInputでカーソルを動かし, SendInputでクリックを行うプログラムを作成しました.
しかし, スクリーンキーボードで文字入力を行おうとした場合, クリックできません.
他のところはクリックできるのですが, スクリーンキーボード上だとSendInputによるクリックが効きません.
何か解決方法がありましたら, ご教授お願いいたします.
Re: SendInputについて
Posted: 2014年7月28日(月) 14:58
by のり
質問者です.
どなたかご存知の方いらっしゃいませんか?
Re: SendInputについて
Posted: 2014年7月28日(月) 20:34
by Bull
どのような環境で、どのようなプログラムを実行していますか。
また、キー入力を受け取るアプリケーションは何ですか?
簡単なプログラムを書いて実行したところ、うまくキーを拾えているようです。
当方の環境は
Windows7 Pro 32bit
Visual Studio 2010でコンソールアプリケーションを作成
OS標準のスクリーンキーボードからメモ帳に文字を入力
以上です
Re: SendInputについて
Posted: 2014年7月28日(月) 21:44
by みけCAT
のり さんが書きました:SendInputでカーソルを動かし, SendInputでクリックを行うプログラムを作成しました.
しかし, スクリーンキーボードで文字入力を行おうとした場合, クリックできません.
他のところはクリックできるのですが, スクリーンキーボード上だとSendInputによるクリックが効きません.
Bull さんが書きました:簡単なプログラムを書いて実行したところ、うまくキーを拾えているようです。
両者ともプログラムを貼っていただいて、比較するとなにかわかるかもしれません。
Re: SendInputについて
Posted: 2014年7月28日(月) 23:27
by Bull
ええ、そうなんですよね。ソースを提示できればいいのですが、ご免なさい今手元のありません。
これだけじゃなんなんで、概要だけでも...
コード:
INPUT input[] = {
{ INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 0, 0 },
{ INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTDOWN, 0, 0 },
{ INPUT_MOUSE, 0, 0, 0, MOUSEEVENTF_RIGHTUP, 0, 0 },
};
こんな構造体を用意して、マウスを移動する位置を決めます。
そして SendInput() を呼び出すだけです。
コード:
input[0].mi.dx = x座標;
input[0].mi.dy = y座標;
SendInput(3, input, sizeof(INPUT));
やっつけなプログラムなんで、座標は決めうちです。
参考にはなるかもしれませんが、そのままでは動かないです。