模擬鼠標自動點擊


 

 

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Threading;
using System.Windows.Forms;

namespace MouseAoto
{
    public partial class Form1 : Form
    {
        #region 鼠標控制
        /// <summary>
        /// 制庫
        /// </summary>
        /// <param name="dwFlags">標志位集,指定點擊按鈕和鼠標動作的多種情況</param>
        /// <param name="dx">指定鼠標沿x軸的絕對位置或者從上次鼠標事件產生以來移動的數量</param>
        /// <param name="dy">指定鼠標沿y軸的絕對位置或者從上次鼠標事件產生以來移動的數量</param>
        /// <param name="dwData">鼠標滾輪移動的數量</param>
        /// <param name="dwExtraInfo">指定與鼠標事件相關的附加32位值</param>
        /// <returns></returns>
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);


        [System.Runtime.InteropServices.DllImport("user32")]
        static extern bool SetCursorPos(int X, int Y);
        //移動鼠標 
        const int MOUSEEVENTF_MOVE = 0x0001;
        //模擬鼠標左鍵按下 
        const int MOUSEEVENTF_LEFTDOWN = 0x0002;
        //模擬鼠標左鍵抬起 
        const int MOUSEEVENTF_LEFTUP = 0x0004;
        //模擬鼠標右鍵按下 
        const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
        //模擬鼠標右鍵抬起 
        const int MOUSEEVENTF_RIGHTUP = 0x0010;
        //模擬鼠標中鍵按下 
        const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
        //模擬鼠標中鍵抬起 
        const int MOUSEEVENTF_MIDDLEUP = 0x0040;
        //標示是否采用絕對坐標 
        const int MOUSEEVENTF_ABSOLUTE = 0x8000;
        //模擬鼠標滾輪滾動操作,必須配合dwData參數
        const int MOUSEEVENTF_WHEEL = 0x0800;
        #endregion

        public Form1()
        {
            InitializeComponent();
            this.KeyPreview = true;
        }


        public void TestMoveMouse(int X, int Y)
        {
            SetCursorPos(X, Y);
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

        }

        /// <summary>
        /// 鍵盤監控
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyData == Keys.Escape)
            {
                Application.Exit();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int X = Convert.ToInt32(textBox1.Text);
            int Y = Convert.ToInt32(textBox2.Text);
            SetCursorPos(X, Y);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            List<MouseModel> model = JsonConvert.DeserializeObject<List<MouseModel>>(textBox3.Text);
            for (int i = 0; i < Convert.ToInt32(textBox4.Text); i++)
            {
                foreach (var item in model)
                {
                    TestMoveMouse(item.X, item.Y);
                    Thread.Sleep(item.date);
                }
            }
        }
    }

    public class MouseModel
    {
        public int X { get; set; }
        public int Y { get; set; }
        public int date { get; set; }

    }
}

  


免責聲明!

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



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