Windows下程序模拟鼠标单击和拖放操作

原文地址:http://blog.csdn.net/ariesjzj/article/details/8526103

用程序模拟鼠标输入可以用以下几种方法:

1. SendMessage和PostMessage,通过发鼠标消息和模拟鼠标事件,优点是窗口最小化后仍然有效。

2. mouse_event,模拟鼠标操作。窗口必须在前面。

3. SendInput, 可以用作模拟鼠标和键盘。

 

这里用第一种方法实现单击和拖放

单击:

void click_point(unsigned long x, unsigned long y)
{
	SendMessage(hwnd, WM_LBUTTONDOWN, NULL, MAKELPARAM(x, y));
	SendMessage(hwnd, WM_LBUTTONUP, NULL, MAKELPARAM(x, y));
}


拖放:

void drag_drop(unsigned long x1, unsigned long y1, 
			   unsigned long x2, unsigned long y2)
{
#define MOVE_STEP	50
	assert(hwnd);
	POINT point1, point2;
	point1.x = x1; point1.y = y1;
	point2.x = x2; point2.y = y2;
	SendMessage(hwnd, WM_LBUTTONDOWN, NULL, MAKELPARAM(point1.x, point1.y));
	if (x2 >= x1) {
		for (unsigned long i = x1; i < x2; i += MOVE_STEP) {
			Sleep(10);
			SendMessage(hwnd, WM_MOUSEMOVE, NULL, MAKELPARAM(i, point1.y));
		}
	} else {
		for (unsigned long i = x1; i > x2; i -= MOVE_STEP) {
			Sleep(10);
			SendMessage(hwnd, WM_MOUSEMOVE, NULL, MAKELPARAM(i, point1.y));
		}
	}
	SendMessage(hwnd, WM_LBUTTONUP, NULL, MAKELPARAM(point2.x, point2.y));
}


 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值