使用python向窗口发送鼠标点击命令

发布于:2023-08-24 ⋅ 阅读:(86) ⋅ 点赞:(0)

今天遇到一个问题。公司让用电脑在网页上看个视频。网页有个判断:一段时间没有鼠标活动,视频就会暂停。于是就想,能否隔一段时间就模拟鼠标点击一下视频暂停,再点一下继续播放。省得它自己停止播放。这样我就可以让网页窗口在后台,我去干别的。
研究了一下,用python写了个代码基本上解决了这个问题。这里简单说一下解决思路。
先用窗口的名称来获取窗口的句柄:

# 把window_name替换成你窗口的名称
handle = win32gui.FindWindow(None, "windown_name")

有了窗口句柄后,就可以向窗口发送鼠标事件

# 向X,Y坐标点发送鼠标左键点击事件
import win32api, win32con, win32gui
def click_button(hwnd, x, y):
    lParam = win32api.MAKELONG(x, y)
    win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
    win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, None, lParam)

然后改造下面的代码(定时器),让过一段事件鼠标点击一次

# -*- coding:utf-8 -*-
import threading
import time
cancel_tmr = False
def start():
    #具体任务执行内容
    print("hello world")
 
def heart_beat():
    # 打印当前时间
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    if not cancel_tmr:
        start()
        # 每隔3秒执行一次
        threading.Timer(3, heart_beat).start()
if __name__ == '__main__':
    heart_beat()
    # 15秒后停止定时器
    time.sleep(15)
    cancel_tmr = True

网站公告

今日签到

点亮在社区的每一天
去签到