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