直接上源代码吧
//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;}