如标题中所述,我一直在尝试使用Cursor.Position = new Point(58, 128);
搜索设置鼠标坐标的方法然后按住鼠标左键(向下)我试图滚动到另一个方向(随机方向)。例如,如果我要进入Google地球并将光标位置设置为0,0
,则光标会在地图上滚动。如果有人可以帮忙,我一定会很感激。
由于
解决方案:floatas,再次感谢回复这篇文章。我花了昨天和今天试图解决这个问题,我终于开始工作了。我会发布我的代码,希望这有助于其他人。
答案 0 :(得分:1)
首先,您需要导入一些功能。
更改光标位置:
[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);