使用 PostMessage 模拟鼠标点击
Emulating a mouseclick using PostMessage
我正在使用 python 的 win32 模块创建一个简单的 click() 方法,它应该模拟鼠标点击,但不幸的是我的方法不起作用。
def click(x, y):
hWnd = win32gui.FindWindow(None, "SomeWindowTitle")
lParam = win32api.MAKELONG(x, y)
win32gui.PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, lParam);
win32gui.PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, lParam);
...
timer = Timer(30, click, [x, y])
timer.start()
感谢每一个提示!
我现在开始工作了.. 上面的代码运行良好,我唯一不知道的是我在屏幕坐标中从 win32api.GetCursorPos()
获取光标位置,但是 win32gui.PostMessage()
需要 hWnd 的相对坐标。简单地用 ScreenToClient()
转换它就可以了。
我正在使用 python 的 win32 模块创建一个简单的 click() 方法,它应该模拟鼠标点击,但不幸的是我的方法不起作用。
def click(x, y):
hWnd = win32gui.FindWindow(None, "SomeWindowTitle")
lParam = win32api.MAKELONG(x, y)
win32gui.PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, lParam);
win32gui.PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, lParam);
...
timer = Timer(30, click, [x, y])
timer.start()
感谢每一个提示!
我现在开始工作了.. 上面的代码运行良好,我唯一不知道的是我在屏幕坐标中从 win32api.GetCursorPos()
获取光标位置,但是 win32gui.PostMessage()
需要 hWnd 的相对坐标。简单地用 ScreenToClient()
转换它就可以了。