Skip to content

Repository files navigation

TimeTipper

GitHub Repo Size GitHub Release (with filter) GitHub All Releases GitHub License

TimeTipper

乱用小心被老师**!

🌐 关于

这是一个初三的学生花费几个月利用Python+PySide6写的小程序,
主要是为了防止老师拖堂...

🚀 使用

前往releases页面直接下载最新版本即可
单文件exe, 双击直接运行

👦 作者

💬 反馈

如果你有任何反馈,请联系我:Z_Octopus@outlook.com

📖 教程

第一次运行时,程序会自动在程序所在目录创建两个配置文件clock.jsonconfig.json, 它们的内容分别是下课时间及其描述软件的一些基本设置

第一次运行时, 你会在任务栏里看到一个时钟的图标, 双击它就可以打开软件的设置界面.
右键它还有一些选项; 中键点击就会退出软件 设置界面 当勾选"隐藏托盘"选项时,任务栏里的时钟图标会变成透明图片, 需要按住shift双击透明图标并在第二次点击前按下Esc键才能打开软件设置界面(或者右键图标选择第一个选项)
当勾选"强力隐藏模式"时,任务栏将会直接隐藏软件图标, 届时只能通过全局快捷键打开设置界面.

新增:

  • 新增了全局快速切换快捷键(Ctrl+Win+Shift+C), 可以快速切换启用状态
  • 新增了全局退出快捷键(Ctrl+Win+Shift+Q), 可以快速退出软件

在时间设置界面(如下图) 时间设置界面 你可以设置每一天的时间, 右键时间点可以切换它的启用状态, 星期右边的刷新按钮可以快速切换到当日

在添加程序界面(如下图) 添加程序界面 你可以添加下课时需要关闭的程序(完整exe名, 带后缀)和窗口(取其标题的一部分即可, 会模糊匹配所有标题含有该字段的窗口并关闭)

日志界面(如下图) 日志界面 你可以查看软件运行时的所有日志, 包括下课时间, 关闭的程序, 关闭的窗口

软件运行关键逻辑(在没有催眠那刻夏的前提下):

  • while 软件运行时
    • 反复检测当前时间是否是设置的下课时间(间隔0.01秒)
    • 如果是: 执行清剿
      • 获取所有窗口标题, 如果包含设置的窗口标题内容, 就对其发送关闭事件
      • 利用window自带的tasklist命令检测当前有没有运行着的上课软件, 有则taskkill之
    • 不是的话无事发生

🔧 配置文件

  • clock.json
    • 包含下课时间及其描述
    • 格式:(一共有7个列表, 每个列表包含一周每天时间点信息,
    • 以列表形式保存, 列表中第0, 1, 2个索引分别是时间, 描述, 启用状态)
      {
        "config": [
            [],
            [],
            [],
            [],
            [],
            [
              [
                  "00:00",
                  "Default Description",
                  true
              ]
            ],
            []
        ]
      }
      
  • config.json
    • 包含软件的一些基本设置
    • 格式:(hide_tray的数值为0, 1, 2, 分别对应"不隐藏", "普通隐藏", "强力隐藏")
      {
        "hide_tray": 2,
        "for_kill_exes": [
            "EasiCamera.exe",
            "et.exe",
            "EXCEL.Title",
            "POWERPNT.Title",
            "WINWORD.Title",
            "wps.exe",
            "wpscloudsvr.exe"
        ],
        "random_time": [
            0,
            30
        ],
        "hold_time": 300,
        "for_kill_window_titles": [
            ".pdf",
            ".ppt",
            ".pptx",
            ".xlsx",
            "192.168.",
            "分享的图片",
            "聊天记录",
            "文档文件"
        ]
      }

👨‍💻 开发

  • 本项目使用Python编程语言开发
  • 作者开发环境:
    • Python 3.15
    • Windows 11
    • 使用Git进行版本管理
  1. 📥克隆项目:
    git clone https://github.com/ZYOctopuszy/TimeTipper.git
  2. 安装依赖
    pip install -r requirements.txt
  • 📚依赖库:
    • keyboard
    • loguru
    • Nuitka
    • psutil
    • PySide6
    • pywin32
  • ⚙️构建: enter_venv.bat && packed.bat

About

一位中国初中生闲着没事干开发的"小"软件 A 'small' software developed by a Chinese middle school student out of boredom.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages