模拟鼠标动作
细水流长话API之二 mouse_event
大家可能看见过一些模拟鼠标的小软件,想不想自己来做一个呢?
其实不是很难,需要一个很重要的api函数,那就是mouse_event函数;
这个函数能模拟鼠标移动和按钮点击,它的声明如下:
VOID mouse_event(
DWORD dwFlags, // motion and click options
DWORD dx, // horizontal position or change
DWORD dy, // vertical position or change
DWORD dwData, // wheel movement
ULONG_PTR dwExtraInfo // application-defined information
);
第一个参数是鼠标移动点击选项,通过它可以设置模拟鼠标那些动作。
当第一个参数是MOUSEEVENTF_ABSOLUTE,第二,第三参数是鼠标
移动或点击后,所处的屏幕坐标是绝对坐标值,当这个参数缺省时,dx和
dy是相对坐标值。第一个参数可以取以下几个值:
MOUSEEVENTF_ABSOLUTE
MOUSEEVENTF_MOVE
MOUSEEVENTF_LEFTDOWN
MOUSEEVENTF_LEFTUP
MOUSEEVENTF_RIGHTDOWN
MOUSEEVENTF_RIGHTUP
MOUSEEVENTF_MIDDLEDOWN
MOUSEEVENTF_MIDDLEUP
具体内容请参考MSDN,下面我将实现鼠标左键单击,右键单击。
我使用的编程工具是VC6.0,在WINDOWS98下;
首先建立WIN32应用程序,然后作个定时器。下面的代码是响应WM_TIMER
消息:
if (GetAsyncKeyState(VK_Z)<0)
mouse_event( MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);
else if(GetAsyncKeyState(VK_X)<0)
mouse_event(MOUSEEVENTF_MOVE|MOUSEEVENTF_RIGHTDOWN|MOUSEEVENTF_RIGHTUP,0,0,0,0);
对于函数GetAsyncKeyState电脑爱好者曾经介绍过它的用法,这是是用来检测键盘按键状态的,
对于VK_Z 和VK_X像这样定义:
#define VK_Z 0X5A
#define VK_X 0X58
具体清参考MSDN,鼠标的移动等请朋友们自己去实现吧!
that is all.
VC模拟鼠标动作
最新推荐文章于 2021-07-13 15:13:42 发布