使用Python实现企业微信的自动打卡功能


Posted in Python onApril 30, 2019

上下班打卡是程序员最讨厌的东西,更讨厌的是设置了连上指定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实现企业微信的自动打卡功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
Flask数据库迁移简单介绍
Oct 24 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
Python实现确认字符串是否包含指定字符串的实例
May 02 Python
Python3处理HTTP请求的实例
May 10 Python
Python实现的redis分布式锁功能示例
May 29 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
python os.fork() 循环输出方法
Aug 08 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 #Python
Python3.5迭代器与生成器用法实例分析
Apr 30 #Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 #Python
Django学习笔记之为Model添加Action
Apr 30 #Python
Python Opencv实现图像轮廓识别功能
Mar 23 #Python
python opencv实现图像边缘检测
Apr 29 #Python
Python Django给admin添加Action的方法实例详解
Apr 29 #Python
You might like
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
详解Python中的join()函数的用法
2015/04/07 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python实现完整的事务操作示例
2017/06/20 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
物业招聘计划书
2014/01/10 职场文书
网络技术专业求职信
2014/07/13 职场文书
python实现简易名片管理系统
2021/04/11 Python
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js