0
マウスクリックをシミュレートするために、次のようにC++スニペットを作成しました。SendInputが連続して動作しない
INPUT mouseData[2];
ZeroMemory(mouseData, sizeof(mouseData));
mouseData[0].type = INPUT_MOUSE;
mouseData[0].mi.dx = xx;
mouseData[0].mi.dy = yy;
mouseData[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
mouseData[0].mi.mouseData = 0;
mouseData[0].mi.time = 0;
mouseData[1].type = INPUT_MOUSE;
mouseData[1].mi.dx = 10;
mouseData[1].mi.dy = 10;
mouseData[1].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
mouseData[1].mi.mouseData = 0;
mouseData[1].mi.time = 0;
SendInput(1, &mouseData[0], sizeof(INPUT));
Sleep(30);
SendInput(1, &mouseData[1], sizeof(INPUT));
しかし、うまくいきません。 元のSendInputは機能しますが、後者のSendInputは機能しません。 なぜですか?
別:私は、画面の任意の位置に手動でマウスをクリックしてマウスクリックのための
- コールSendInput
- を以下のようSendInputを試してみました。
- コールSendInput
上記はうまくいきます。 しかし、2がなければ、動作しません。どうして?
これはマウス通知を受け取るプログラムには非常に混乱します。それをすべて同時にやってはいけません。まず移動してから、次に動かしてください。 –
これらのイベントは、アトミックに処理できるように配列に配置します。一度に1つずつ送信しないでください。すべてのイベントを含むSendInputへの1回の呼び出し。また、それぞれの異なる行動に対して1つのイベントが必要です。ドキュメントをお読みください。 –
間違ったフラグを設定しています。左下と左上のフラグは1つの入力で送信できますか? – SMUsamaShah