标 题: 连连看外挂制作 —— 模拟键鼠(3)
作 者: Koma
时 间: 2009-12-12 23:02
链 接: http://blog.csdn.net/wangningyu/archive/2009/12/12/4994295.aspx
VC模拟键盘鼠标操作也许简单一些,但是面对连连看这么大的一个6*16或更大的数组,假如你去遍历模拟点击,确实比较繁琐,当然效率也不敢恭维。如果对图文图像识别这方面有研究的朋友,我相信会比较容易些。
模拟键盘鼠标的操作,一般有两种:后台操作,即脱机外挂,不需要将窗口设为当前置顶 ;另一种则相反,需要将窗口设置为最顶层(需要激活窗口)
1、前台模拟鼠标键盘操作
这里将窗口置顶,再调用模拟键鼠操作相关的API,微软提供了一个API,例如:
SetWindowPos(this->GetSafeHwnd(),HWND_TOPMOST, cx, cy, 0, 0, SWP_NOSIZE);
但是这个API也不能确保当前窗口就是最顶层(因为另一个程序再次调用的时候会覆盖)
为了确保当前窗口在最顶层,下面是我整理后的代码,实例代码如下:
激活窗口:
模拟按键:
模拟鼠标点击:
2、后台模拟鼠标键盘操作
这里就不需要激活窗口了,这就类似传说中XX脱机外挂,还是参见代码吧!
后台模拟键盘事件:
后台模拟鼠标点击:
在测试这段代码时,我查找了很多资料未果,因为最后一个参数LPARAM我尝试过很多方法去表示鼠标的坐标也不行,终于在codeproject一位朋友告诉我用MAKELPARAM宏来设置鼠标X、Y的坐标,在此深表感谢!
相关工程的源代码就不用上传了吧,有兴趣的自己摸索一下~~~