C#__ 模擬鼠標單擊事件


首先要用到的引用有

[DllImport("User32")]
public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
[DllImport("User32")]
public extern static void SetCursorPos(int x, int y);

 

1、SetCursorPos:用於設置鼠標的坐標。與它對應的當然就是GetCursorPos啦!

2、mouse_event:這個事件是用於模仿鼠標的各種操作(單擊、雙擊....),視輸入參數的不同而定了。

 =============================================================================================

下面是完整的代碼:

[DllImport("User32")]
public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
[DllImport("User32")]
public extern static void SetCursorPos(int x, int y);
[DllImport("User32")]
public extern static bool GetCursorPos(out POINT p);
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
}
public enum MouseEventFlags
{
Move = 0x0001, //移動鼠標
LeftDown = 0x0002,//模擬鼠標左鍵按下
LeftUp = 0x0004,//模擬鼠標左鍵抬起
RightDown = 0x0008,//鼠標右鍵按下
RightUp = 0x0010,//鼠標右鍵抬起
MiddleDown = 0x0020,//鼠標中鍵按下 
MiddleUp = 0x0040,//中鍵抬起
Wheel = 0x0800,
Absolute = 0x8000//標示是否采用絕對坐標
}
private void button1_Click(object sender, EventArgs e)
{
// POINT p = new POINT();
// GetCursorPos(out p);
// MessageBox.Show(p.X.ToString()+":"+p.Y.ToString());
AutoClick();
}

public static void AutoClick()
{
while (true)
{

//設置鼠標的坐標

SetCursorPos(72, 40);

//這里模擬的是一個鼠標雙擊事件
mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero);
mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero);

mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero);
mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), 72, 40, 0, IntPtr.Zero);
}
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM