模拟窗口鼠标点击

    技术2022-05-19  20

    直接上源代码吧

    //hWnd为窗口句柄,dx为窗口client坐标x值,dy为窗口坐标y值,nFlag为鼠标标志

    int SendClickMsg(HWND hWnd, unsigned int dx, unsigned int dy, int nFlag){ if (hWnd != NULL) {  int nCaptionHighte = GetSystemMetrics(SM_CYCAPTION);//获取标题栏高度  SetForegroundWindow(hWnd);//讲窗口置入前台  POINT pt;  pt.x = dx;  if (GetWindowLong(hWnd, GWL_STYLE) & WS_CAPTION)//判断窗口是否具有标题栏  {   pt.y = dy - nCaptionHighte;  }  else  {   pt.y = dy;  }  ClientToScreen(hWnd, &pt);//转化客户端坐标到屏幕坐标  SetCursorPos(pt.x, pt.y);//设置鼠标位置  Sleep(100);

      //模拟鼠标点击事件  if (nFlag == 0)  {

       //鼠标单击   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);  }  else if (nFlag == 1)  {

       //鼠标双击   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);  }  return 0; } return -1;}


    最新回复(0)