使用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 相关文章推荐
Python操作SQLite简明教程
Jul 10 Python
总结Python编程中三条常用的技巧
May 11 Python
详解Python字符串对象的实现
Dec 24 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python并发2之使用asyncio处理并发
Dec 21 Python
python实现xlsx文件分析详解
Jan 02 Python
Python subprocess模块常见用法分析
Jun 12 Python
python 文件转成16进制数组的实例
Jul 09 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 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
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python字符串详细介绍
2015/05/09 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
关于Python作用域自学总结
2019/06/10 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
简单了解python中对象的取反运算符
2019/07/01 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
外科实习自我鉴定
2013/10/06 职场文书
国旗下演讲稿
2014/05/08 职场文书
多媒体教室标语
2014/06/26 职场文书
2014年团支书工作总结
2014/11/14 职场文书