win32: simulate a click without simulating mouse movement?

后端 未结 2 1000
终归单人心
终归单人心 2020-12-09 11:53

I\'m trying to simulate a mouse click on a window. I currently have success doing this as follows (I\'m using Python, but it should apply to general win32):

         


        
相关标签:
2条回答
  • 2020-12-09 12:30

    This doesn't answer the question, but it does solve my problem:

    win32api.ClipCursor((x-1,y-1,x+1,y+1))
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN| \
                         win32con.MOUSEEVENTF_ABSOLUTE,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP| \
                         win32con.MOUSEEVENTF_ABSOLUTE,0,0)
    win32api.ClipCursor((0,0,0,0))
    

    The result is that any movements I'm making won't interfere with the click. The downside is that my actual movement will be messed up, so I'm still open to suggestions.

    0 讨论(0)
  • 2020-12-09 12:31

    Try WindowFromPoint() function:

    POINT pt;
        pt.x = 30; // This is your click coordinates
        pt.y = 30;
    
    HWND hWnd = WindowFromPoint(pt);
    LPARAM lParam = MAKELPARAM(pt.x, pt.y);
    PostMessage(hWnd, WM_RBUTTONDOWN, MK_RBUTTON, lParam);
    PostMessage(hWnd, WM_RBUTTONUP, MK_RBUTTON, lParam);
    
    0 讨论(0)
提交回复
热议问题