问题描述
我知道使用 win32gui.PostMessage(hwnd,win32con.WM_MOUSEMOVE,wParam,lParam)
我可以假装鼠标移动到一个未聚焦的应用程序,而不会影响我真正的鼠标。
如果 win32api.GetCursorPos()
返回我的真实鼠标光标的位置,我如何获得我当前的“假鼠标”位置?
编辑 #1:
我在 外部 应用程序上使用 WM_MOUSEMOVE
,因此我唯一拥有的是应用程序的 window handle
(HWND)。
解决方法
您可以使用GetMessagePos
:
检索最后一条消息的光标位置
GetMessage
函数。
更多参考:Possible to do MouseMove actions with PostMessage without hijacking the cursor?
编辑
如果只想通过外部应用的HWND获取其消息,则需要使用SetWindowsHookEx
,将其制作成dll注入到外部进程中。
您可以使用 SetWindowsHookEx
函数和 WH_CALLWNDPROC
或其他类型的钩子,here 就是一个例子。