日期:2009-12-24 浏览次数:20674 次
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Win32API_模拟鼠标移动及点击事件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[System.Runtime.InteropServices.DllImport("user32")]
///dwFlags Long,下表中标志之一或它们的组合
///dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
///cButtons Long,没有使用
///dwExtraInfo Long,没有使用
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
//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; //标示是否采用绝对坐标
private void Form1_Load(object sender, EventArgs e)
{
// 程序中我们直接调用mouse_event函数就可以了
//mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0);
}
//鼠标左键按下和松开两个事件的组合即一次单击
private void button1_Click(object sender, EventArgs e)
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
//模拟鼠标右键单击事件
private void button2_Click(object sender, EventArgs e)
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);
}
//两次连续的鼠标左键单击事件 构成一次鼠标双击事件
private void button3_Click(object sender, EventArgs e)