0


下面是我使用win32 api生成左键的代码。问题是它被卡住并且没有返回到main。当我按 Ctrl+c 时,它会返回到 main。但是当我调用它两次时,模拟双击就可以了。这段代码有什么问题吗?谢谢你。

void LeftClick(void)
{  
  INPUT    Input={0};

  // left down 
  Input.type      = INPUT_MOUSE; /*The event is a mouse event. Use the mi structure of the union.*/
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTDOWN;
  SendInput(1,&Input,sizeof(INPUT));

  // left up
  ZeroMemory(&Input,sizeof(INPUT));
  Input.type      = INPUT_MOUSE;
  Input.mi.dwFlags  = MOUSEEVENTF_LEFTUP;
  SendInput(1,&Input,sizeof(INPUT));
}
4

1 回答 1

1

如果您不致力于使用 SendInput,我过去曾在所需的 hWnd 上使用 SendMessage 和 WM_LBUTTONDOWN 成功,然后再次使用 WM_LBUTTONUP。

大多数按钮还可以通过键盘输入来模拟点击。您可以使用 SendMessage 到您想要的 hWnd 和 WM_KEYDOWN 和 wParam VK_SPACE,然后 WM_KEYUP 和 VK_SPACE 来完成空格键按键模拟。

于 2011-03-28T16:43:38.763 回答