使用mouse_event API函数实现鼠标移动

Dear200892 2019-08-18 01:11:28
程序开始运行时,我会给【起点】和【终点】赋值坐标
现在的问题是:如何模拟鼠标按下左键,然后根据轨迹来拖动鼠标,直到轨迹画完后才松开鼠标左键

举例:如同【阴阳师】中画符操作,画符过程中不能中断路径,需一气呵成完成画图

...全文
767 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dear200892 2019-08-18
  • 打赏
  • 举报
回复
MouseHelper.SetCursorPos(page.PointLeftUpX, page.PointLeftUpY); //移动常量 int Constant = Convert.ToInt32((page.PointRightUpX - page.PointLeftUpX) / 12); GameManagement.SetRtbMessage(rtb, String.Format(DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + ":第{0}次执行,鼠标移动到({1},{2}),准备绘制图形!", (number + 1), page.PointLeftUpX, page.PointLeftUpY)); MouseHelper.mouse_event(MouseEventFlagEnum.LeftDown, page.PointLeftUpX, page.PointLeftUpY, 0, UIntPtr.Zero); Thread.Sleep(1000);//执行速度过快,延迟鼠标移动时间 int PointX = page.PointLeftUpX; int PointY = page.PointLeftUpY; for (int i = 0; i < 12; i++) { if (i % 2 == 0)//向下绘制 { PointX = page.PointLeftDownX + (Constant * (i + 1)); PointY = page.PointLeftDownY; } else //向上绘制 { PointX = page.PointLeftUpX + (Constant * (i + 1)); PointY = page.PointLeftUpY; } MouseHelper.SetCursorPos(PointX, PointY); //MouseHelper.mouse_event(MouseEventFlagEnum.Move, PointX, PointY, 0, UIntPtr.Zero); //MessageBox.Show(String.Format("X:{0},Y:{1}", PointX.ToString(), PointY.ToString())); Thread.Sleep(1000);//执行速度过快,延迟鼠标移动时间 } MouseHelper.mouse_event(MouseEventFlagEnum.LeftUp, PointX, PointY, 0, UIntPtr.Zero); GameManagement.SetRtbMessage(rtb, String.Format(DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + ":第{0}次执行,鼠标移动到({1},{2}),绘制图形结束!", (number + 1), PointX, PointY));
Dear200892 2019-08-18
  • 打赏
  • 举报
回复
Dear200892 2019-08-18
  • 打赏
  • 举报
回复
可以加分!!!!

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧