• C# 鼠标操作类


    C#鼠标操作类

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace ConsoleApp1
    {
        /// <summary>
        /// C#鼠标操作类
        /// </summary>
        public class MouseOperations
        {
            [Flags]
            public enum MouseEventFlags
            {
                LeftDown = 0x00000002,
                LeftUp = 0x00000004,
                MiddleDown = 0x00000020,
                MiddleUp = 0x00000040,
                Move = 0x00000001,
                Absolute = 0x00008000,
                RightDown = 0x00000008,
                RightUp = 0x00000010
            }
    
            [DllImport("user32.dll", EntryPoint = "SetCursorPos")]
            [return: MarshalAs(UnmanagedType.Bool)]
            private static extern bool SetCursorPos(int x, int y);
    
            [DllImport("user32.dll")]
            [return: MarshalAs(UnmanagedType.Bool)]
            private static extern bool GetCursorPos(out MousePoint lpMousePoint);
    
            [DllImport("user32.dll")]
            private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
    
            /// <summary>
            /// 设置当前坐标
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            public static void SetCursorPosition(int x, int y)
            {
                SetCursorPos(x, y);
            }
    
            /// <summary>
            /// 设置当前坐标
            /// </summary>
            /// <param name="point"></param>
            public static void SetCursorPosition(MousePoint point)
            {
                SetCursorPos(point.X, point.Y);
            }
    
            /// <summary>
            /// 获取当前坐标
            /// </summary>
            /// <returns></returns>
            public static MousePoint GetCursorPosition()
            {
                MousePoint currentMousePoint;
                var gotPoint = GetCursorPos(out currentMousePoint);
                if (!gotPoint) { currentMousePoint = new MousePoint(0, 0); }
                return currentMousePoint;
            }
    
            /// <summary>
            /// 鼠标事件
            /// </summary>
            /// <param name="value"></param>
            public static void MouseEvent(MouseEventFlags value)
            {
                MousePoint position = GetCursorPosition();
    
                mouse_event
                    ((int)value,
                     position.X,
                     position.Y,
                     0,
                     0)
                    ;
            }
    
            [StructLayout(LayoutKind.Sequential)]
            public struct MousePoint
            {
                public int X;
                public int Y;
    
                public MousePoint(int x, int y)
                {
                    X = x;
                    Y = y;
                }
            }
        }
    }

    用法:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using static ConsoleApp1.MouseOperations;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                MouseOperations.SetCursorPosition(200, 200);
                Thread.Sleep(2000);
                MouseOperations.SetCursorPosition(400, 400);
                Thread.Sleep(2000);
                MouseOperations.MouseEvent(MouseEventFlags.LeftDown);
            }
        }
    
    
    }
  • 相关阅读:
    新的一天,新的一周
    mysql重启失败,报错:starting mysql。 the server quit without updating pid file (/[failed]l/mysql/data/hostname.pid])
    rpm包安装、配置与卸载
    python高效运用(十)———文件(File)、输入输出的基本操作
    paramiko--------远程服务器连接工具
    main
    thread同步测试
    实验二测试
    《信息安全系统设计与实现》学习笔记9
    实验二 OpenSSL API使用
  • 原文地址:https://www.cnblogs.com/xytmj/p/14273445.html
Copyright © 2020-2023  润新知