mouse_event函数的参数问题
mob 发布于 2021-12-30

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这个量,还得再看看。

 

mob
关注 私信
文章
61
关注
0
粉丝
0