LX的Wordpress站点

LINXUAN
LX的WordPress站点
  1. 首页
  2. 编程教程
  3. 正文

树莓派教程 - 用树莓派来实现钉钉打卡

2024 年 6 月 16 日 7379点热度 2人点赞 2条评论

前言展开目录

可以钉钉打卡的途径很多,我没研究过。公司是用 wifi 连接打卡的。所以我自己做了一个。懒得去研究其他方法,也不想花钱。刚好有闲置的树莓派,和一台闲置的安卓手机。我只要用 adb 调起钉钉,钉钉就会自动打卡了。那么就开干吧。

安装 ADB展开目录

sudo apt-get update
sudo apt-get install -y android-tools-adb android-tools-fastboot

核心代码展开目录

import time
import threading
import os,subprocess
import base64
import random
PATH = lambda p: os.path.abspath(p)
isScreenshoting = False#打卡def onWork():# 开个线程截图    ts = threading.Thread(target=runLoopScreenshot, args=())
    ts.setDaemon(True)
global isScreenshoting
    isScreenshoting = True    ts.start()
    os.system('adb shell input keyevent 26')
    os.system('adb shell input keyevent 3')
    os.system('adb shell am start -n com.alibaba.android.rimet/com.alibaba.android.rimet.biz.SplashActivity')
# 等15秒后关闭    time.sleep(15)
    os.system('adb shell input keyevent 3')
    os.system('adb shell input keyevent 6')
    isScreenshoting = False# 打卡完毕    tend = threading.Thread(target=enddk, args=())
    tend.start()
def enddk():# 通知你想通知的地方    print("end")
    time.sleep(10)
def runLoopScreenshot():global isScreenshoting
while isScreenshoting:
# os.popen("adb wait-for-device")        s = os.popen("adb shell screencap -p  | base64").read()
        print(s)
        os.popen("adb shell screencap -p /data/local/tmp/tmp.png")
        path = '/home/pi'        os.popen("adb pull /data/local/tmp/tmp.png " + PATH(path + "/s.png"))
# os.popen("adb shell rm /data/local/tmp/tmp.png")# 图片转了base64 可以发到你想发的地方with open(path + "/s.png", "rb") as f:
            base64_data = base64.b64encode(f.read())
    print('success')
if __name__ == '__main__':
# 设置多几个打卡时间    dakaTime = ['08:49:40', '08:47:32', '08:53:25']
    nextDakaTime = NonewhileTrue:
try:
# 看有没有设备连接            device = os.popen('adb devices -l').read()
            out = device.split(' ')
            print('{"action":"device","data":"%s,%s,%s"}' % (out[11], out[12], out[13]))
            currentTime = time.strftime("%H:%M:%S", time.localtime())
if nextDakaTime == None:
                r = random.randint(0, len(dakaTime) - 1)
                nextDakaTime = dakaTime[r]
            print(currentTime,nextDakaTime)
if currentTime == nextDakaTime:
# 开个线程打卡                t = threading.Thread(target=onWork, args=())
                t.setDaemon(True)
                t.start()
except Exception as e:
            print("something wrong:", e)
        time.sleep(1)

最后展开目录

将手机设置成无密码,就可以自动打卡了,最后祝大家以后迟到不用扣钱。

本文来自 用树莓派来实现钉钉打卡

Post Views: 1,436
标签: 暂无
最后更新:2024 年 6 月 16 日

Moleft

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • misaka10032w

    lol

    2024 年 6 月 16 日
    回复
  • misaka10032w

    hohoho

    2024 年 6 月 16 日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    归档

    • 2024 年 6 月

    分类

    • 杂谈
    • 系统维护
    • 编程教程

    COPYRIGHT © 2024 LX的Wordpress站点. ALL RIGHTS RESERVED.

    IP地址位置数据由纯真CZ88提供支持

    Theme Kratos Made By Seaton Jiang

    黑ICP备2022001288号

    黑公网安备23010902000411号