请选择 进入手机版 | 继续访问电脑版

一种利用Python库解决视频课程防多窗口播放的简单粗暴方法

[复制链接]
小浣熊 发表于 2021-1-3 12:03:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython

一、引言

本日是2020年最后一天,公司通知本人,尚有公司网上某门20个学时的视频课程没有学习。哎呀呀这一听就慌了神,距2021年只有十多个小时了,怎么完得成?只有开多窗口,但是网上课程的视频软件隔几十秒就判断一次当前播放窗口是否为桌面运动应用窗口,不是就暂停播放。因此哪怕自己开多个窗口同时播放刷学时,也需要不绝的去激活各个窗口,最后无奈只能求助万能的Python。固然如果网站不限制多呆板登录,土豪同学可以选择开多台呆板办理,那就请自便。
二、需要实现的功能

为相识决这个问题,最开始老猿想的是使用selenium,但想了想,这个问题只需要定时的在各个屏幕位置鼠标单击激活即可,无需准确判断,就弃用了selenium方案。找了一下,发现至少有2种库可以满意相关的需求,一个是PyUserInput,详细先容请参考《Python 模拟键盘鼠标利用详细教程》或《python模拟鼠标点击和键盘输入的利用》,但老猿pip安装时找不到该库,也没时间多折腾了,别的一个就是pyautogui,相关先容请参考《python在windows系统上模拟鼠标点击》,使用pip install 一安装很快完成。
三、关键函数先容

pyautogui库可以用来办理老猿问题的两个函数是鼠标移动函数moveTo和鼠标按键函数click。
函数语法



  • 鼠标移动:moveTo(x=None, y=None, duration=0.0, tween=linear, logScreenshot=False, _pause=True)
  • 鼠标按键:click( x=None, y=None, clicks=1, interval=0.0, button=PRIMARY, duration=0.0, tween=linear, logScreenshot=None, _pause=True)
关键参数



  • x、y:对应需要利用屏幕位置的x、y坐标,像素为单位
  • clicks:点击反复
  • duration:从鼠标当前位置移到利用位置的时间,单位为秒,可以为小数,为0表现没有移动过程,直接到该位置
  • interval:点击多次情况下,每次的隔断,单位为秒,可以为小数
  • button:点击的按键
四、案例代码

老猿开了四个视频窗口并排分列,如下:

步调代码每隔段时间就将鼠标移动到四个窗口对应位置,单击一次,然后休眠一段时间,再点击一次,一直循环。代码如下:
  1. import pyautoguiimport timewhile (True):    pyautogui.moveTo(200, 250, duration=0.1)    pyautogui.click(200, 250, clicks=1, duration=0, button='left')    pyautogui.moveTo(800, 250, duration=0.1)    pyautogui.click(800, 250, clicks=1, duration=0, button='left')    pyautogui.moveTo(200, 600, duration=0.1)    pyautogui.click(200, 600, clicks=1, duration=0, button='left')  # right/middle            pyautogui.moveTo(800, 600, duration=0.1)    pyautogui.click(800, 600, clicks=1, duration=0, button='left')    print("sleep 10s")    time.sleep(10)
复制代码
实际上,由于单击时以上代码无法判断当前状态是什么,因此这种处理处罚方式会导致50%的时间视频是无法播放状态。才开始老猿是每个窗口一连点击两次,效果过段时间有的窗口就一直是暂停状态,估计是因为视频播放软件判断当前是否为运动窗口是固定的定时处理处罚,而外部的点击无法包管每次检测时该窗口是激活的,所以只能以这种循环单击的粗暴简单的方式。但至少包管了4个窗口的播放时长相当于两个视频端全工播放。
别的以上代码实在moveTo的鼠标移动是不必须的,可以省略。
五、小结

本文先容了一种使用pyautogui库来模拟鼠标点击屏幕窗口的办法,可以用来轮番激活屏幕的视频窗口播放。
写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、品评、收藏,谢谢各人的支持!
关于老猿的付费专栏

前两个专栏都适合有一定Python根本但无相关知识的小白读者学习,第三个专栏请各人团结《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理处罚》的学习使用。
对于缺乏Python根本的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python根本教程目次)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,接待购买付费专栏。

跟老猿学Python!

☞ ░ 前往老猿Python博文目次 https://blog.csdn.net/LaoYuanPython


来源:https://blog.csdn.net/LaoYuanPython/article/details/112041090
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )