首页 > 解决方案 > 应用程序在拖动操作期间等待鼠标单击

问题描述

我正在开发 ac# 函数,它将鼠标从一个点拖动到另一个点。mouse_eventfromuser32.dll用于执行操作。我可以通过发送MOUSEEVENTF_LEFTDOWN然后执行点击MOUSEEVENTF_LEFTUP。对于拖动,我在做 a MOUSEEVENTF_LEFTDOWN,然后是a ,然后MOUSEEVENTF_MOVEMOUSEEVENTF_LEFTUP。最初我观察到拖动不起作用,只发生了鼠标移动。所以我Application.DoEvents()MOUSEEVENTF_MOVE. 这启动了拖动过程。我可以看到拖动鼠标指针,并随着拖动的对象移动到放置点。在我用鼠标手动单击之前,系统会等待Application.DoEvents()并且不会继续执行。MOUSEEVENTF_LEFTUP

SetCursorPos(startX, startY);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
SetCursorPos(endX, endY);
Application.DoEvents();
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

上面代码片段中的 Application.DoEvents() 是问题所在。

标签: drag-and-dropmouseeventdraguser32doevents

解决方案


推荐阅读