4

Delphi 2009で関数を使用してMouse_Eventいましたが、Delphiのドキュメントには、この関数が置き換えられ、SendInput代わりに使用されると記載されています。

DelphiのSendInputドキュメントでは構文とパラメータが定義されていますが、例がなく、関数の使用方法が明確ではありません。Webを調べましたが、Delphiの良い例は見つかりませんでした。

具体的には、左マウスを下から上にシミュレートしようとしています。現在、私は次のようにこれを行いMouse_Eventます:

    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

どうすればこれを使用できSendInputますか?


ファローアップ:

@Davidが提案したように、コードをそのままにしておくことになりました。

しかし、彼が私の質問に答えてくれたので、私は@opc0deに答えを与えました。しかし、私はそれを試したことがないので、それが正しいことを保証することはできません。

4

1 に答える 1

7

詳細については、左クリックをシミュレートする方法を次に示します。http://msdn.microsoft.com/en-us/library/ms646310( VS.85 ).aspxにアクセスしてください。

var
eu: array [0..1] of TInput;
begin
  ZeroMemory(@eu,sizeof(eu));
  eu[0].Itype := INPUT_MOUSE;
  eu[0].mi.dwFlags :=MOUSEEVENTF_LEFTDOWN;
  eu[1].Itype := INPUT_MOUSE;
  eu[1].mi.dwFlags :=MOUSEEVENTF_LEFTUP;
  SendInput(2,eu[0],sizeof(TInput));
end;

そして、これは右クリックをシミュレートするためのものです

var
eu: array [0..1] of TInput;
begin
  ZeroMemory(@eu,sizeof(eu));
  eu[0].Itype := INPUT_MOUSE;
  eu[0].mi.dwFlags :=MOUSEEVENTF_RIGHTDOWN;
  eu[1].Itype := INPUT_MOUSE;
  eu[1].mi.dwFlags :=MOUSEEVENTF_RIGHTUP;
  SendInput(2,eu[0],sizeof(TInput));
end;
于 2011-07-03T08:22:02.627 に答える