帮弟弟打游戏
start
- 引入命名空间
using System.Runtime.InteropServices;
因为要使用user32.dll中的接口。 - 创建一个新类MouseFlag
声明函数
- 此处的位置都是屏幕绝对位置
- 设置鼠标位置:public static extern int SetCursorPos(int x, int y);
- 鼠标事件:static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
虽然这个已经弃用了,但是上手简单。这里需要一个类型:MouseEventFlag创建MouseEventFlag :
enum MouseEventFlag : uint
- 用类包起来
public class MouseFlag
{
enum MouseEventFlag : uint
{
Move = 0x0001,
LeftDown = 0x0002,
LeftUp = 0x0004,
RightDown = 0x0008,
RightUp = 0x0010,
MiddleDown = 0x0020,
MiddleUp = 0x0040,
XDown = 0x0080,
XUp = 0x0100,
Wheel = 0x0800,
VirtualDesk = 0x4000,
Absolute = 0x8000
}
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
[DllImport("user32.dll")]
public static extern int SetCursorPos(int x, int y);
public static void MouseLefClickEvent(int dx, int dy, uint data)
{
SetCursorPos(dx, dy);
mouse_event(MouseEventFlag.LeftDown, dx, dy, data, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, dx, dy, data, UIntPtr.Zero);
}
}
- eg:点击屏幕的(9,1059).我的这个点是“开始”按钮所在位置
MouseFlag.MouseLefClickEvent(9, 1059, 0);