Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

🔔 校园打铃脚本 (ClassBell)

一个用 Windows PowerShell 编写的自动打铃脚本。按预设的作息时间表,自动播放上课铃、预备铃与提醒音;最后一节课结束后弹出倒计时关机提示。全程后台静默运行,不需要人盯着。

最初是为了让电脑在正确的时刻「响铃」而写的小工具,适合教室、自习室、家庭作息提醒等场景。


✨ 功能特性

  • 两套作息时间表,按星期启用(工作日 / 周末可各用一套)
  • 三种声音
    • ring.wav — 上课铃
    • warning bell\ — 预备铃(从文件夹里随机挑一首,一轮内不重复,全部播完自动重置)
    • wake.wav + announcement.wav — 午休唤醒
  • 预备铃后自动补铃:每次预备铃 / 唤醒时刻之后 3 分钟,自动再响一次上课铃
  • 低占用动态休眠:按距离下一次铃声的时间自适应休眠(40 分钟 / 1 分钟 / 1 秒 / 1 毫秒),几乎不占 CPU
  • 下课自动关机:当天最后一声铃响完,弹出 30 秒倒计时关机窗口,可点「取消」撤销
  • 防多开:全局互斥锁,重复运行不会响两遍
  • 静默运行:run.vbs 以隐藏窗口启动,不闪黑框

📁 文件说明

文件 作用
ring.ps1 主脚本(时间表、铃声逻辑都在这里)
schedule.txt 每日启用开关与作息表选择
run.vbs 启动脚本(隐藏窗口)
stop.vbs 停止脚本
test.vbs 测试模式(不会真正关机)
ring.wav / announcement.wav / wake.wav 铃声素材
warning bell\ 预备铃素材(可放任意多个 .wav)
warning_played.txt 运行时自动生成,记录预备铃播放历史(已在 .gitignore 中忽略)

🚀 使用说明

0. 环境要求

  • Windows 10 / 11
  • 系统自带的 Windows PowerShell 5.1 与 WScript —— 无需额外安装

1. 准备铃声素材

把音频放到对应位置(文件名保持不变,脚本按文件名调用):

  • ring.wav、announcement.wav、wake.wav 放在脚本根目录
  • 预备铃素材放进 warning bell\ 文件夹,可放任意数量的 .wav,脚本会随机播放

⚠️ 本仓库默认不包含音频文件(体积大,且多数音乐受版权保护)。请自行放入无版权音频或自己录制。

2. 配置作息表

编辑 schedule.txt,每天一行,格式为:

# Day,Enabled,Schedule
Monday,false,2
Saturday,true,1
  • Day — 星期几(Monday … Sunday)
  • Enabled — 当天是否启用(true / false)
  • Schedule — 使用哪套作息表(1 或 2)

3. 修改铃声时间

铃声时间写在 ring.ps1 顶部的数组里:

$schedule1_ring    = @("07:30", "08:00", "08:45", ...)   # 上课铃
$schedule1_warning = @("08:52", "09:57", ...)            # 预备铃
$schedule1_wake    = "13:57"                             # 午休唤醒

$schedule2_ring    = @(...)
$schedule2_warning = @(...)
$schedule2_wake    = "13:57"

时间用 HH:mm(24 小时制)。预备铃与唤醒时刻会自动 +3 分钟补一次上课铃,无需手动再加。

4. 运行 / 停止 / 测试

run.vbs     # 启动(后台隐藏运行)
stop.vbs    # 停止
test.vbs    # 测试模式:打印当天所有铃声,弹窗与倒计时走测试逻辑,不会真关机

5. 开机自启(可选)

  • 把 run.vbs 的快捷方式放进启动文件夹: %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
  • 或用「任务计划程序」添加登录时触发器,操作设为 wscript.exe "<脚本目录>\run.vbs"

⚙️ 工作原理(简述)

run.vbs 以隐藏窗口拉起 ring.ps1。脚本先读取 schedule.txt 判断今天用哪套时间表,然后进入主循环:算出距离最近的铃声时刻,按远近做自适应休眠;到点就播放对应声音。当天最后一声铃响完后,调用 shutdown /s /t 30 并弹出一个 VBS 倒计时窗口——点「取消」会执行 shutdown -a 撤销关机。

📄 许可

代码部分采用 MIT 许可。仓库不含任何音频素材,音源请自备。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages