- 注释感觉已经很清楚了,有不懂的欢迎评论 1 using System;
- 2 using System.Collections.Generic;
- 3 using System.ComponentModel;
- 4 using System.Data;
- 5 using System.Drawing;
- 6 using System.Linq;
- 7 using System.Runtime.InteropServices;
- 8 using System.Text;
- 9 using System.Threading;
- 10 using System.Threading.Tasks;
- 11 using System.Windows.Forms;
- 12
- 13 namespace WindowsFormsApp1
- 14 {
- 15 public partial class Form1 : Form
- 16 {
- 17 public Form1()
- 18 {
- 19 InitializeComponent();
- 20 this.Hide();
- 21 }
- 22 /// <summary>
- 23 /// 引用user32.dll动态链接库(windows api),
- 24 /// 使用库中定义 API:SetCursorPos
- 25 /// </summary>
- 26 [DllImport("user32.dll")]
- 27 private static extern int SetCursorPos(int x, int y);
- 28 /// <summary>
- 29 /// 移动鼠标到指定的坐标点
- 30 /// </summary>
- 31 public void MoveMouseToPoint(Point p)
- 32 {
- 33 SetCursorPos(p.X, p.Y);
- 34 }
- 35 /// <summary>
- 36 /// 设置鼠标的移动范围
- 37 /// </summary>
- 38 public void SetMouseRectangle(Rectangle rectangle)
- 39 {
- 40 System.Windows.Forms.Cursor.Clip = rectangle;
- 41 }
- 42 /// <summary>
- 43 /// 设置鼠标位于屏幕中心
- 44 /// </summary>
- 45 public void SetMouseAtCenterScreen()
- 46 {
- 47 //当前屏幕的宽高
- 48 int winHeight = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
- 49 int winWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
- 50 //设置鼠标的x,y位置
- 51 loginx = winWidth / 3 * 2;
- 52 loginy = winHeight / 4 + 5;
- 53 Point centerP = new Point(loginx, loginy);
- 54 //移动鼠标
- 55 MoveMouseToPoint(centerP);
- 56 }
- 57 //点击事件
- 58 [DllImport("User32")]
- 59 //下面这一行对应着下面的点击事件
- 60 // public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
- 61 public extern static void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
- 62 public const int MOUSEEVENTF_LEFTDOWN = 0x2;
- 63 public const int MOUSEEVENTF_LEFTUP = 0x4;
- 64 public enum MouseEventFlags
- 65 {
- 66 Move = 0x0001, //移动鼠标
- 67 LeftDown = 0x0002,//模拟鼠标左键按下
- 68 LeftUp = 0x0004,//模拟鼠标左键抬起
- 69 RightDown = 0x0008,//鼠标右键按下
- 70 RightUp = 0x0010,//鼠标右键抬起
- 71 MiddleDown = 0x0020,//鼠标中键按下
- 72 MiddleUp = 0x0040,//中键抬起
- 73 Wheel = 0x0800,
- 74 Absolute = 0x8000//标示是否采用绝对坐标
- 75 }
- 76 //鼠标将要到的x,y位置
- 77 public static int loginx, loginy;
- 78 private void Form1_Load(object sender, EventArgs e)
- 79 {
- 80
- 81
- 82 //移动鼠标
- 83 SetMouseAtCenterScreen();
- 84
- 85
- 86 //mouse_event((int)(MouseEventFlags.LeftDown | MouseEventFlags.Absolute), loginx, loginy, 0, IntPtr.Zero);
- 87
- 88 //mouse_event((int)(MouseEventFlags.LeftUp | MouseEventFlags.Absolute), loginx, loginy, 0, IntPtr.Zero);
- 89 //点击两次
- 90 mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, loginx, loginy, 0, 0);
- 91
- 92 mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, loginx, loginy, 0, 0);
- 93
- 94 }
- 95 }
- 96 }