C#中怎样控制鼠标?

来源:百度知道 编辑:UC知道 时间:2024/05/01 00:35:47
1.现有button1,怎样一点击button1就可以在屏幕坐标100,200处单击?
private void button1_Click(object sender, System.EventArgs e)
{
????????
}
2.在Form1某处单击,怎样可以知到单击处的坐标?
private void Form1_Click(object sender, System.EventArgs e)
{
????????
}

首先要告诉你个不幸的消息,.net本身不提供对鼠标操作的支持,所以只能使用外部函数。
这样写:

using System.Runtime.InteropServices;

[Flags]
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")]
static extern bool SetCursorPos(int X, int Y);
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetCursorPos"