mouse_event函数可以用来模拟鼠标的事件触发,函数的声明如下,
WINUSERAPI
VOID
WINAPI
mouse_event(
_In_ DWORD dwFlags,
_In_ DWORD dx,
_In_ DWORD dy,
_In_ DWORD dwData,
_In_ ULONG_PTR dwExtraInfo);
参数中的dx和dy比较费解,参考了百度百科的解释,
dx
指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。
dy
指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOUSEEVENTF_ABSOLUTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。
不过看上面的解释,如果移动鼠标的事件,那dx和dy的值是多少呢?例如,将鼠标移动到(x,y) =(100,200)的位置,这个看了也不知道怎样设置,一开始以为直接dx=x,dy=y,尝试了发现不是想要的,后来看到有代码根据鼠标坐标点的位置,用dx=x*65536/分辨率宽,dy=y*65536/分辨率高,这样设置就是正确的,至于为什么要用65536这个量,还得再看看。