Qt使用Windows Api模拟鼠标单击双击滚轮事件


        打开msdn后搜索mouse_event,会发现它的说明

        函数原型:

VOID WINAPI mouse_event(
  _In_ DWORD     dwFlags,
  _In_ DWORD     dx,
  _In_ DWORD     dy,
  _In_ DWORD     dwData,
  _In_ ULONG_PTR dwExtraInfo
);
        值得说明的参数是dwFlages,下面列出常用参数,具体参数请参考csdn

        MOUSEEVENTF_ABSOLUTE 是否使用绝对坐标

      MOUSEEVENTF_LEFTDOWN 鼠标左键按下

      MOUSEEVENTF_LEFTUP 鼠标左键松开

      MOUSEEVENTF_MIDDLEDOWN 鼠标中键按下

      MOUSEEVENTF_MIDDLEUP 鼠标中键松开

        MOUSEEVENTF_MOVE 鼠标移动

      MOUSEEVENTF_RIGHTDOWN 鼠标右键按下

      MOUSEEVENTF_RIGHTUP 鼠标右键按下

        MOUSEEVENTF_WHEEL 鼠标滑轮

      首先包含头文件

#ifdef Q_OS_WIN32
#include "windows.h"
#endif

      使用鼠标模拟单击事件

    int x = 50;
    int y = 50;
    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,x, y, 0, 0);
       

        双击事件

    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,x, y, 0, 0);
    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTUP,x, y, 0, 0);
    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTDOWN,x, y, 0, 0);
    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_LEFTUP,x, y, 0, 0);

        滚轮事件,delta为滚轮的值

    mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_WHEEL,p.x(), p.y(), delta, 0);


你可能感兴趣的:(Qt,Windows开发)