海军上将 发表于 2021-4-25 19:55:32

利用 SendInput 和INPUT结构模拟鼠标移动

    int x = GetDlgItemInt(IDC_EDIT1) ;   //要移动到的 x 坐标
    int y = GetDlgItemInt(IDC_EDIT2) ;   //         y

    int cx_screen = ::GetSystemMetrics(SM_CXSCREEN);//屏幕 宽
    int cy_screen = ::GetSystemMetrics(SM_CYSCREEN);//   高

    int real_x = 65535 * x / cx_screen;//转换后的 x
    int real_y = 65535 * y / cy_screen;//         y

    INPUT input;
    input.type = INPUT_MOUSE;
    input.mi.dx = real_x ;
    input.mi.dy = real_y ;
    input.mi.mouseData = 0;
    //MOUSEEVENTF_ABSOLUTE 代表决对位置MOUSEEVENTF_MOVE代表移动事件
    input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
    input.mi.time = 0;
    input.mi.dwExtraInfo = 0;

    SendInput(1,&input,sizeof(INPUT));
页: [1]
查看完整版本: 利用 SendInput 和INPUT结构模拟鼠标移动