使用Python实现企业微信的自动打卡功能
作者:zqwcrystal 发布时间:2021-02-27 02:41:34
标签:python,企业,微信,打卡
上下班打卡是程序员最讨厌的东西,更讨厌的是设置了连上指定wifi打卡。
手机上有一些定时机器人之类的app,经过实际测试,全军覆没,没一个可以活着走到启动企业微信的这一步,所以还是靠自己吧。
下面就通过Python程序来实现自动打卡,原理很简单,用Python设置定时任务,然后通过adb操作手机,完成打卡。
1、准备工作
a、安装了Python,ADB驱动(安装方式及下载地址见之前文章)的电脑一台;常驻在公司的测试机一台;数据线一条。
b、将手机通过数据线连接电脑,打开开发者选项中的允许USB调试,然后命令行运行adb devices来测试下是否能显示设备,ok则准备工作完毕。
2、实现代码
#本手机安装了企业微信分身,可以打两个人的卡
# coding: utf-8
import os
import sys
import time
import schedule
import requests
def click():
#打第一个卡
os.system('adb shell input keyevent 82')#点亮屏幕
time.sleep(1)
os.system('adb shell input keyevent 3')#单击home键,回到主页
time.sleep(1)
os.system('adb shell input swipe 500 300 300 300')#左划屏幕
time.sleep(1)
os.system('adb shell input swipe 500 300 300 300')#左划屏幕
time.sleep(2)
os.system('adb shell input tap 920 800')#点击企业微信
time.sleep(5)
os.system('adb shell input tap 678 1820')
time.sleep(5)
os.system('adb shell input tap 410 330')
time.sleep(10)
os.system('adb shell input tap 540 1340')
time.sleep(5)
#打第二个卡
os.system('adb shell input keyevent 3')
time.sleep(1)
os.system('adb shell input swipe 500 300 300 300')
time.sleep(1)
os.system('adb shell input swipe 500 300 300 300')
time.sleep(2)
os.system('adb shell input tap 660 1100')
time.sleep(5)
os.system('adb shell input tap 678 1820')
time.sleep(5)
os.system('adb shell input tap 410 330')
time.sleep(10)
os.system('adb shell input tap 540 1340')
time.sleep(5)
#推送消息给微信,此处可以删除,仅为通知
url = 'http://wxmsg.dingliqc.com/send?msg=打卡成功&userIds=自己微信的uid'
requests.get(url)
sys.exit()
def main():
'''
主函数
'''
schedule.every().day.at('18:03').do(click)
while True:
schedule.run_pending()
time.sleep(3)
if __name__ == '__main__':
main()
关于代码中涉及到的坐标点,可以通过手机页面截图,放到电脑里编辑图片来查看触摸点的坐标值,跟机型和分辨率有关,需要针对自己的手机调试,sleep的时间根据手机性能,网络环境可以做优化,然后运行代码就行了。想后台运行的话
start /b python startwork.py
当然,最重要的一点,电脑要保持24H开机,程序员不担心这个,因为真正的程序员从不关机。
总结
以上所述是小编给大家介绍的使用Python实现企业微信的自动打卡功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.jianshu.com/p/3951f2351cf3


猜你喜欢
- MySQL 5.7.9版本sql_mode=only_full_group_by问题用到GROUP BY 语句查询时com.MySQL.jd
- 本文将通过一下几个方面来一一进行解决 1、程序的主要功能
- 需求在4*4的图片中,比较外围黑色像素点和内圈黑色像素点个数的大小将图片分类如上图图片外围黑色像素点5个大于内圈黑色像素点1个分为0类反之1
- 自从看了蒋鑫的《Git权威指南》之后就开始使用Git Submodule功能,团队也都熟悉了怎么使用,多个子系统(模块)都能及时更新到最新的
- 创建临时表,往临时表插入数据的时候报的错误。一开始提示没有打开主键,后来打开主键就提示上述错误异常。从网上查找资料没有找到,然后又到群里问各
- 思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建。关键点:1. 使用os.p
- 关于电子邮件 大学之前,基本不用邮箱,所以基本感觉不到它的存在,也不知道有什么用;然而大学之后,随着认识的人越来越多,知识越来越广
- Access 连接字符串 strConnect = “Provider=Microsoft.Jet.OLEDB.4.0;
- 其中如果有问题,有更好的意见或者建议都可在最后留言,都将对您感激不尽。 具体的代码如下: <!DOCTYPE HTML> <
- 由于学习需要安装matplotlib库,阅读网上教程后一直出现各种各样的错误,以下为我的经验总结:声明:本人python版本为3.8.0,p
- 在实际数据分析过程中,我们分析用Python来处理数据(海量的数据),我们都是把这个数据转换为Python的对象的,比如最为常见的字典。比如
- 本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下:TCP服务器程序(tsTserv.py):fro
- 一、题意理解给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构的”。现给定两棵树,请你判断它们是否是
- 本文实例讲述了mysql中GROUP_CONCAT的使用方法。分享给大家供大家参考,具体如下:现在有三个表,结构如下:cate表:CREAT
- 备注1:解决连接MySQL数据库很慢的问题vim /etc/my.cnf添加内容:skip-name-resolve,重启数据库。 
- 1.经典类与新式类在了解Python的类与类型前,需要对Python的经典类(classic classes)与新式类(new-style
- 最近被“模块化”缠身,又是文章又是PPT的,被逼着想了很多相关的东西。整理下我这段时间对于“模块化”的思考,大多都是我自己从事页面重构这份工
- 表还是total_sales添加一项表:SQL语句:SELECT * from( SELECT a1.N
- 发版前接到一个临时新需求 ,需要在web端地址选择时用地图,并获取经纬度。 临阵发版之际加需求,真的是很头疼,于是赶紧找度娘,找api。 我
- 技巧 16:如果页面需要很长时间才能完成,那么执行前使用 Response.IsClientConnected 如果用户性急,他们可能会在您