星期六, 3月 01, 2008

c# 控制滑鼠

[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, int extraInfo);
private 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
}

//mouse move
public void myMoseMove(Point p)
{
mouse_event(MouseEventFlag.Move, p.X - Cursor.Position.X, p.Y - Cursor.Position.Y, 0, 0);
}

//mouse click
public void myMouseClick(Point p)
{
Cursor.Position = p;
mouse_event(MouseEventFlag.LeftDown, p.X, p.Y, 0, 0);
mouse_event(MouseEventFlag.LeftUp, p.X, p.Y, 0, 0);
}

//mouse down
public void myMouseDown(Point p)
{
Cursor.Position = p;
mouse_event(MouseEventFlag.LeftDown, p.X, p.Y, 0, 0);
}

//mouse up
public void myMouseUp(Point p)
{
Cursor.Position = p;
mouse_event(MouseEventFlag.LeftUp, p.X, p.Y, 0, 0);
}

//mouse double click
public void myMouseDoubleClick(Point p)
{
Cursor.Position = p;
myMouseClick(p);
myMouseClick(p);
}

沒有留言: