• 基于AHK的上课自动签到


    此博客链接:https://www.cnblogs.com/ping2yingshi/p/12625801.html

    基于AHK的上课自动签到

    第一章项目需求

    说明:以下鼠标自动是系统驱动鼠标自动的简写。

    1.总述

    在上课前系统驱动鼠标自动移动完成课程签到。此项目分两种情况:

    1)在QQ群中签到:到达签到时间,打开QQ,鼠标自动点击需要签到的群,找到签到链接,进行签到。

    2)在网页上进行签到:到达签到时间,签到网页自动打开,鼠标自动点击签到位置进行签到。

    2.用户故事

    1)用户故事一:上课时间到了,老师在QQ群中发了签到链接,用户打开了ahk程序,鼠标自动在QQ中点击了搜索框,系统跳转到搜索页面。鼠标自动在搜索框中输入需要签到的群名,并点击消息列表中第一条找到的群,页面跳转到群聊界面。鼠标自动点击群聊中的显示消息记录按钮,打开群聊天记录界面,鼠标自动点击群天聊记录中的搜索框,鼠标自动在群聊天记录中输入http后,鼠标自动点击搜索按钮,出现只有签到链接的消息记录界面。鼠标自动移动到第一条链接的打开按钮处,并自动点击。页面跳转到签到是二维码的界面。鼠标自动移动到签到界面的关闭按钮位置,并点击关闭按钮。鼠标自动移动到QQ聊天界面的关闭按钮位置,并点击关闭按钮。鼠标自动移动到QQ界面的关闭按钮位置,并点击关闭按钮。鼠标自动移动到雷电模拟器的腾讯文档位置,点击腾讯文档,雷电模拟器页面跳转到腾讯文档界面。鼠标自动点击最近浏览位置处并点击,页面跳转到最近浏览页面。鼠标自动点击最近浏览列表第一条消息位置,页面跳转到签到打卡页面,鼠标自动移动到打卡位置并点击,页面跳转到打卡成功页面。

    2)用户故事二:上课时间到了,老师在QQ群中发了签到链接,用户打开了ahk程序,系统跳转到超星签到平台界面,鼠标自动点击签到按钮,页面跳转到签到成功页面。

    3.需求细化

    3.1签到时间判断

      完成签到时间判断所使用的技术在第二章的第一节获取本地时间处。

    3.2课表循环

    完成课表循环所使用的技术在第二章的第二节格式化本地时间处。

    3.3打开指定窗口

    完成打开指定窗口所使用的技术在第二章的第三节激活指定窗口处。

    3.4鼠标点击

    完成鼠标点击所使用的技术在第二章第四节的鼠标点击处。

    3.5搜索课表和签到链接

    完成搜索课表和签到链接所使用的技术在第二章第五节复制自定义内容处。 

    第二章项目技术

    1.获取当前本地时间

    1.1说明

    想要实现在PC机上鼠标自动点击签到链接,需要获取当前本地时间,目的是为了和课程表中的课程时间做判断。

    1.2在此项目中的作用

    判断当前本地时间是否到达了课表中签到设定的时间。只有到达签到时间,QQ群中或者网页上才会出现签到链接。

    1.3内置变量

    A_Now

    变量格式及说明请参见:

    https://www.autohotkey.com/docs/Variables.htm#Now

    1.4示例

    1.4.1代码

    MsgBox,%A_Now%

    1.4.2代码说明

    显示本地当前时间。

    1.4.3运行结果

    返回当前本地时间当前时间为2020年3月28号12点11分37秒。

    2.格式化当前本地时间

    2.1说明

    我们使用的课表每周都是相同的,判断当前本地时间和课表时间是否相同时,可以按照星期来循环课表。所以把本地时间格式化。

    2.2在此项目中的作用

    把格式为YYYYMMDDHH24MISS的时间戳转换为指定的课表时间YYYYdddHH24MISS格式。

    2.3格式

    格式说明请参见:https://www.autohotkey.com/docs/commands/FormatTime.htm

    2.4示例

    2.4.1代码

    FormatTime, now_date, %A_Now%, yyyy/ddd/HH/mm/ss

    2.4.2代码说明

    使用格式化命令,把当前本地时间设置为年,星期,小时,分钟,秒的格式。

    (备注:课程是每周固定时间签到)

    2.4.3运行结果

    输出当前本地时间为2020年周六12点14分39秒。

     

    3.激活指定窗口

    3.1说明

    对于不同的课程需要不同的签到平台,由于签到都是靠鼠标自动完成的,所以首先需要让鼠标知道点击那个页面进行签到。这需要使用命令告诉操作系统激活对应的窗口。

    3.2在此项目中作用

    在QQ或者网页上点击签到链接时,需要先打开QQ并激活QQ或者激活网页,让目标窗口成为活动窗口,指示后面程序都是在当前活动窗口内完成的。

    3.3格式

    格式说明请参见:https://www.autohotkey.com/docs/commands/WinActivate.htm

    3.4示例

    3.4.1代码

    WinActivate, ahk_class TXGuiFoundation

    3.4.2代码说明

    激活QQ窗口,ahk_class TXGuiFoundation是QQ窗口名称。在Window_Spy中可以查看各个窗口名称。

    3.4.3运行结果

    使用这个命令使QQ或者网页处于激活状态。

    4.鼠标点击

    4.1说明

    在PC机上完成签到时需要使用鼠标点击一系类的按钮完成最终的签到。

    4.2在此项目中作用

    4.2.1打开QQ

    打开QQ时,鼠标点击一系列按钮来完成签到。鼠标需要点击搜索框来搜索群名,点击搜索结果的第一条记录,点击聊天记录中的搜索框来搜索签到链接,点击签到链接的打开按钮。

    4.2.2打开网页

    打开网页时。鼠标需要点击网页上签到按钮。

    4.3格式

    格式说明请参见:

    https://www.autohotkey.com/docs/commands/MouseClick.htm

    4.4示例

    4.4.1代码

    MouseClick, left, 188, 195

    4.4.2代码说明

    鼠标单击QQ界面的搜索框坐标

    4.4.3运行结果

    鼠标单击QQ界面的搜索框位置。

     

    5.复制自定义内容

    5.1说明

    在QQ群中签到时,需要在QQ界面的搜索框中输入签到群,在QQ聊天界面的聊天记录中输入http,使用复制命令可以把所需要搜索的内容复制到搜索框中而不需要人工手动输入。

    5.2在此项目中的作用

    5.2.1复制QQ群名

    复制QQ群名到搜索框搜索需要签到的群名称

    5.2.2复制http

    复制http到聊天记录中搜索签到链接

    5.3接收自定义内容

    5.3.1接收自定义内容变量

    Clipboard

    5.3.2变量作用

     详情请参考:https://www.autohotkey.com/docs/misc/Clipboard.htm

    5.3.3示例

    1)代码:

    Clipboard =腾讯文档

    2)代码说明:

    把 "腾讯文档"字符串赋值给Clipboard。

    5.4全选自定义内容

    5.4.1全选自定义内容热键

    ^a

    5.4.2全选热键说明

    ^是Ctrl键

    a是字母小a

    5.4.3示例

    1)代码

    Send ^a

    2)代码说明

    键盘上Ctrl+a是全选区域,全选腾讯文档并复制。

    5.5粘贴自定义内容

    5.5.1粘贴自定义内容热键命令

    ^v

    5.5.2粘贴热键说明

    ^ 是Ctrl键

    v是小写字母v

    5.5.3示例

    1)代码

    Send ^v

    2)代码说明

    键盘上Ctrl+v是粘贴健,把腾讯文档粘贴到QQ的搜索框位置。

    3)运行结果

    经过复制群名,粘贴到QQ搜索框,在QQ搜索框出现群名称。

    6.附件

    《基于AHK的上课自动签到用户测试报告》链接:https://www.cnblogs.com/ping2yingshi/p/12625846.html

    7.感谢

    感谢代哥在技术原型和用户故事上对我的指导,感谢华哥对我每日进度的指导,感谢欣姐和小睿师姐对本博客的指导,感谢老师对整个项目的指导,对我每天的进度都做出点评,给出建议和路线指导,让我能够完成这个项目。

  • 相关阅读:
    题解-FJOI2014 树的重心
    题解-CF1307G Cow and Exercise
    题解-SHOI2005 树的双中心

    【转载】SVN使用教程总结
    Fastcgi、CGI 是什么
    通过js或jq增加的代码,点击事件或其他一些事件不起作用时
    js闭包讲解
    PHP 程序员危机(转载)
    浏览器 User-Agent相关知识
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12625801.html
Copyright © 2020-2023  润新知