drag-and-drop - 应用程序在拖动操作期间等待鼠标单击
问题描述
我正在开发 ac# 函数,它将鼠标从一个点拖动到另一个点。mouse_event
fromuser32.dll
用于执行操作。我可以通过发送MOUSEEVENTF_LEFTDOWN
然后执行点击MOUSEEVENTF_LEFTUP
。对于拖动,我在做 a MOUSEEVENTF_LEFTDOWN
,然后是a ,然后MOUSEEVENTF_MOVE
是MOUSEEVENTF_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() 是问题所在。
解决方案
推荐阅读
- javascript - 如何在 html 页面中放置 datetimepicker?
- php - 无法用 2 个参数计算 mod_rewrite
- ruby - 为什么这个正则表达式不匹配数字和单个字母?
- javascript - 如何使用 Promise.all 使用 Axios Async Await
- c - C 无锁队列内存管理
- python - TensorFlow with keras:tf 1.8 版本的 ReLU 层在哪里?
- php - 如何将所有表记录保存到数据库php jquery json
- java - 如何修复此错误 org.hibernate.HibernateException:当未设置“hibernate.dialect”时,对 DialectResolutionInfo 的访问不能为空
- javascript - 在 JavaScript 中以字符串形式从 jObject 中提取值
- java - Firebase Auth 未在单击按钮时启动 Activity,但在关闭并重新打开应用程序时有效