如何在其他应用聚焦时模拟鼠标点击(优先使用python)

0 投票
1 回答
21 浏览
提问于 2025-04-14 15:41

我想找到一种方法,在我的第二个显示器上模拟鼠标点击,而我的第一个显示器仍然是活动状态。我尝试了很多不同的方法和库,但都没有成功。

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")

这是我从另一个Stack Overflow的回答中得到的代码,但它也没有用。希望能得到一些帮助,谢谢。

1 个回答

0

检查一下显示器的分辨率,比如说是1366 x 768。Python总是把第一个显示器的左上角当作坐标(0,0),所以你可以通过在你的函数里加上坐标来简单地修改代码。

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")

如果这个方法对你有帮助,请告诉我们哦。

撰写回答