我正在寻找一种方法,当我的第一个显示器处于焦点状态时,在辅助显示器上模拟鼠标单击。我尝试了多种不同的策略和库,但没有任何效果。
import win32gui
import win32api
import win32con
def control_click(x, y, handle, button='left'):
l_param = win32api.MAKELONG(x, y)
if button == 'left':
win32gui.PostMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, l_param)
win32gui.PostMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, l_param)
elif button == 'right':
win32gui.PostMessage(handle, win32con.WM_RBUTTONDOWN, 0, l_param)
win32gui.PostMessage(handle, win32con.WM_RBUTTONUP, 0, l_param)
control_click(100,100,"Edit1")
这是我从另一个堆栈溢出答案中获得的代码,但它也不起作用。任何帮助将不胜感激,谢谢。
检查显示器的分辨率,假设为 1366 x 768,Python 始终将第一个显示器的左上角的 x 和 y 视为 (0,0),因此只需将坐标添加到您的 def 即可更改代码。
import win32gui
import win32api
import win32con
def control_click(x, y, handle, button):
l_param = win32api.MAKELONG(x+1366, y+768)
if button == 'left':
win32gui.PostMessage(handle, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, l_param)
win32gui.PostMessage(handle, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, l_param)
elif button == 'right':
win32gui.PostMessage(handle, win32con.WM_RBUTTONDOWN, 0, l_param)
win32gui.PostMessage(handle, win32con.WM_RBUTTONUP, 0, l_param)
control_click(100,100,"Edit1","Left")
请告诉我们此解决方案是否有帮助