我的功能在这里工作,但我肯定是错误的.
我的程序使用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窗口,鼠标仍然会点击正确的位置.
使用SendInput()替代,那么你可以使用标志来相对于窗口的光标移动-
Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;