4

Mouse_Event在 Delphi 2009 中使用了该函数,但 Delphi 文档说该函数已被取代并改为使用SendInput

DelphiSendInput文档定义了语法和参数,但没有示例,也不清楚如何使用该函数。我在网上环顾四周,找不到任何好的 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 回答