日期:2009-12-26  浏览次数:20615 次

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace _鼠标按键Mouse_event方法
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //方法签名:

        [DllImport("user32.dll", EntryPoint = "mouse_event")]
        // 鼠标按键
        //        dwFlags —— Long,下述标志的一个组合:
        //        MOUSEEVENTF_MOVE:移动鼠标;
        //        MOUSEEVENTF_LEFTDOWN:模拟鼠标左键按下;
        //        MOUSEEVENTF_LEFTUP:模拟鼠标左键抬起;
        //        MOUSEEVENTF_RIGHTDOWN:模拟鼠标右键按下;
        //        MOUSEEVENTF_RIGHTUP:模拟鼠标右键按下;
        //        MOUSEEVENTF_MIDDLEDOWN:模拟鼠标中键按下;
        //        MOUSEEVENTF_MIDDLEUP:模拟鼠标中键按下。

 


        // dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元;
        //dx——Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动;
        //dy ——Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动;
        //cButtons ——Long,未使用
        //dwExtraInfo ——Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序。
        public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

        private static extern int SetCursorPos(int x, int y);

 

        private void Form1_Load(object sender, EventArgs e)
        {
            int X, Y;
            X = 400;
            Y = 400;
            SetCursorPos(X, Y);
            mouse_event(MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
        }
    }
}