C++鼠标点击窗口中的某个位置

r-s*_*r-s 2 c c++ winapi

我的功能在这里工作,但我肯定是错误的.

我的程序使用FindWindow来查找正确的窗口.我需要双击此窗口中的特定位置.

我通过始终将窗口放在屏幕上的相同位置来使其工作,但如果我移动窗口,程序将尝试单击我提供的硬编码位置,它将无法工作.

这是功能:

void lobbyWindow(HWND main_client)
{
  //RECT arect;

   // GetWindowRect(main_client, &arect); 

    SetCursorPos(748,294);
    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);

}
Run Code Online (Sandbox Code Playgroud)

如您所见,我只需将鼠标移动到748,294并双击即可.我想要做的是在main_client窗口中将鼠标设置为100,100,所以如果我移动main_client窗口,鼠标仍然会点击正确的位置.

GLE*_*LES 6

使用SendInput()替代,那么你可以使用标志来相对于窗口的光标移动-

Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;

  1. 我如何使用SendInput在x,y坐标上模拟双击鼠标(i khow handle)?
  2. http://www.cplusplus.com/forum/windows/97017/