今天遇到一个问题。公司让用电脑在网页上看个视频。网页有个判断:一段时间没有鼠标活动,视频就会暂停。于是就想,能否隔一段时间就模拟鼠标点击一下视频暂停,再点一下继续播放。省得它自己停止播放。这样我就可以让网页窗口在后台,我去干别的。
研究了一下,用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