您的位置:首页 > 编程语言 > C#

c# 模拟鼠标移动

2012-11-08 09:56 204 查看
[Flags]
public enum MouseEventFlag : uint
{
Move = 0x0001,
MoveTo = 0x0200,
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);

mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.Absolute | MouseEventFlag.Move, X * 65536 / screenWidth, Y * 65536 / screenHeight, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);


其中X、Y是鼠标移动目标点的横坐标和纵坐标;screenWidth、screenHeight是显示屏幕宽度和高度。标志位为MouseEventFlag.Absolute:dx和dy指定鼠标坐标系统中的一个绝对位置,在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元。目标点在屏幕上横坐标和纵坐标需要转化为鼠标坐标系统中的横坐标和纵坐标。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: