C#实现对鼠标的操作

  • Post author:
  • Post category:其他



C#实现对鼠标的操作






本文主要给大家展示的是怎么用C#实现对鼠标的操作,有是否在窗体上显示鼠标、把鼠标移动到指定位置、获取鼠标的坐标等。下面将介绍具体操作:

开始是一些参数定义:

//dwFlags参数定义
       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; //标示是否采用绝对坐标。不采用绝对坐标的话(0,0)表示的是该鼠标当时的位置   


然后定义一些从非托管DLL导出来的函数:


     //是鼠标自动移动到某个位置
        [DllImport("user32.dll", EntryPoint = "SetCursorPos")]
        public extern static bool SetCursorPos(int x, int y);
        //获取鼠标当前的位置
        [StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            public int X;
            public int Y;
        }
        [DllImport("User32")]
        public extern static bool GetCursorPos(out POINT p);
        //是否显示鼠标箭头
        [DllImport("User32")]
        public extern static int ShowCursor(bool bShow);
        //调用系统函数 模拟鼠标事件函数
        [DllImport("user32", EntryPoint = "mouse_event")]
        private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);


接下来,就能通过代码实现对鼠标的一些操作了,下面展示的是一个例子:


            //是鼠标自动到(100,100)位置
            SetCursorPos(100,100);
            //获取当前鼠标的位置
            POINT p = new POINT();
            GetCursorPos(out p);
            textBox1.Text = "" + p.X + "//" + p.Y;
            //是否显示鼠标(true、false)  注:仅在该软件的界面上是否显示鼠标
            ShowCursor(false);
            //移动鼠标到屏幕的(0,0)
            mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);
            //移动鼠标到屏幕的(0,0)并左键单击
            mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE |
                        MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); 


源码资源:http://download.csdn.net/detail/laozhuxinlu/9382869



版权声明:本文为laozhuxinlu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。