如何将鼠标光标设置在X、Y坐标,单击鼠标左键并向左、向右、顶部、底部滚动
本文关键字:鼠标 向右 滚动 底部 顶部 单击 坐标 光标 设置 | 更新日期: 2023-09-27 17:59:43
如标题所述,我一直在尝试使用Cursor.Position = new Point(58, 128);
来搜索设置鼠标坐标的方法。然后,在按住鼠标左键(向下)的同时,我试图滚动到另一个方向(随机方向)。例如,如果我进入谷歌地球并将光标位置设置为0,0
,那么光标将在地图上滚动。如果有人能帮忙,我一定会很感激。
感谢
解决方案:floatas,再次感谢您对这篇文章的回复。我花了昨天和今天的时间试图弄清楚这一点,我终于成功了。我将发布我的代码,希望这能帮助其他人。
首先需要导入一些函数。
更改光标位置:
[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetCursorPos(
[In] int X,
[In] int Y);
模拟鼠标事件:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(
[In] uint dwFlags,
[In] uint dx,
[In] uint dy,
[In] int dwData,
[In] uint dwExtraInfo);
可能的鼠标事件:
public enum MouseEvents
{
MOUSEEVENTF_LEFTDOWN = 0x02,
MOUSEEVENTF_LEFTUP = 0x04,
MOUSEEVENTF_RIGHTDOWN = 0x08,
MOUSEEVENTF_RIGHTUP = 0x10,
MOUSEEVENTF_WHEEL = 0x0800,
}
您可以向下和向上发送鼠标,模拟点击:
mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTDOWN | (uint)MouseEvents.MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
没有测试这个,但应该按下鼠标,拖动并释放:
mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
SetCursorPos((int)X+10, (int)Y+10);
mouse_event((uint)MouseEvents.MOUSEEVENTF_LEFTUP, X+10, Y+10, 0, 0);