主要参考, 使用 pywin32 的 SendMessage 函数实现,函数定义如下:
from win32.win32gui import SendMessage
# 定义鼠标事件的参数
MK_LBUTTON = 1 # 鼠标左键, 右键为 2
MOUSE_MOVE = 512 #0x0001 # 鼠标移动
MOUSE_LEFTDOWN = 513 #0x0002 # 左键按下
MOUSE_LEFTUP = 514 #0x0004 # 左键释放
def bkg_click(hWnd, coord, count = 1, drag = False, delta = 0):
# hWnd 窗口句柄,coord 相对坐标,drag 拖动与否,delta 拖动量,count 点击次数
x, y = int(coord[0]), int(coord[1])
while count > 0:
lParam = x | y <<16
SendMessage(hWnd, MOUSE_LEFTDOWN, MK_LBUTTON, lParam)
if drag:
lParam = x | (y + delta) <<16
SendMessage(hWnd,MOUSE_MOVE, MK_LBUTTON, lParam)
SendMessage(hWnd, MOUSE_LEFTUP, None, lParam)
sleep(0.3)
count -= 1
美中不足之处在于,点击事件发送时会激活窗口,会抢夺活动窗口权限,影响电脑的其它操作
请教大侠有没有更完美的 后台 鼠标事件发送方法
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.