鼠标、键盘模拟技术收藏新一篇: VC实现打印功能 | 旧一篇: 用VC 6.0实现串行通信的三种方法通过调用api来模拟键盘或鼠标操作 API函数来完成对键盘动作的模拟。 模拟键盘动作API函数keydb_event,它可以模拟对键盘上的某个或某些键进行按下或放开的动作。 VOID keybd_event( 其中,bVk表示虚拟键值,其实它是一个BYTE类型值的宏,其取值范围为1-254。有关虚拟键值表请在MSDN上使用关键 字“Virtual-Key Codes”查找相关资料。bScan表示当键盘上某键被按下和放开时,键盘系统硬件产生的扫描码,我们可 以MapVirtualKey()函数在虚拟键值与扫描码之间进行转换。dwFlags表示各种各样的键盘动作,它有两种取值: KEYEVENTF_EXTENDEDKEY和KEYEVENTF_KEYUP。 下面我们使用一段代码实现在游戏中按下Shift+R快捷键对攻击对象进行攻击。 keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0); //按下CTRL键。 几乎所有的游戏中都使用了鼠标来改变角色的位置和方向,玩家仅用一个小小的鼠标,就可以使角色畅游天下。那么 ,我们如何实现在没有玩家的参与下角色也可以自动行走呢。其实实现这个并不难,仅仅几个Windows API函数就可以搞 定,让我们先来认识认识这些API函数。 (1) 模拟鼠标动作API函数mouse_event,它可以实现模拟鼠标按下和放开等动作。 VOID mouse_event( 其中,dwFlags表示了各种各样的鼠标动作和点击活动,它的常用取值如下: MOUSEEVENTF_MOVE 表示模拟鼠标移动事件。 MOUSEEVENTF_LEFTDOWN 表示模拟按下鼠标左键。 MOUSEEVENTF_LEFTUP 表示模拟放开鼠标左键。 MOUSEEVENTF_RIGHTDOWN 表示模拟按下鼠标右键。 MOUSEEVENTF_RIGHTUP 表示模拟放开鼠标右键。 MOUSEEVENTF_MIDDLEDOWN 表示模拟按下鼠标中键。 MOUSEEVENTF_MIDDLEUP 表示模拟放开鼠标中键。 (2)、设置和获取当前鼠标位置的API函数。获取当前鼠标位置使用GetCursorPos()函数,设置当前鼠标位置使用 SetCursorPos()函数。 BOOL GetCursorPos(
数来模拟角色行走过程。 CPoint oldPoint,newPoint; |
|