使用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中for循环详解
Jan 17 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
python中时间模块的基本使用教程
May 14 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Python colormap库的安装和使用详情
Oct 06 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 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学习笔记之 函数声明
2011/06/09 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php用header函数实现301跳转代码实例
2013/11/25 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
python使用scrapy解析js示例
2014/01/23 Python
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python实现的最近最少使用算法
2015/07/10 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
python读写csv文件实例代码
2019/07/05 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
《桂花雨》教学反思
2014/04/12 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
尊师重教主题班会
2015/08/14 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
Python访问Redis的详细操作
2021/06/26 Python
MySQL中连接查询和子查询的问题
2021/09/04 MySQL
Vue Element plus使用方法梳理
2022/12/24 Vue.js