文章

kesike.eth

kesike.eth

· 全文 980 字符

时光倒数:把配置写进 exe 的 Windows 倒计时日历

简介#

时光倒数是一款 Windows 桌面倒计时日历,支持倒数、正计时和每年重复的纪念日。提供浅色、深色、跟随系统主题,中英双语界面,窗口缩放与迷你模式。所有配置保存在 exe 内部,不生成外置配置文件。项目提供 C# 与 Rust 两个功能等价版本。

功能与用法#

  • 指定日期与时分秒,支持倒数、正计时、自动判断
  • 每年重复的纪念日,显示下一次日期、周年数、年度进度
  • 浅色 / 深色 / 跟随系统主题
  • 中文 / English 实时切换
  • 窗口自由缩放、迷你模式、置顶
  • 可选开机启动

用法:

  1. 下载并运行 exe
  2. 点击“新建日子”,设置标题、日期、时间、模式、颜色
  3. 需要每年纪念日时打开“每年重复”
  4. 保存后正常关闭窗口,配置会写回 exe

注意:exe 需放在有写权限的目录,否则无法保存配置。

两个版本:

  • C# 版约 125 KB,依赖 Windows 10/11 自带的 .NET Framework 4.8
  • Rust 版约 3.58 MB,完全自包含,无运行时依赖

技术栈#

  • C# 版:WinForms + 自绘 GDI+ 界面,目标 .NET Framework 4.8,使用 Roslyn 编译
  • Rust 版:eframe / egui 0.31、serde、serde_json、chrono,Windows GNU 目标,静态链接自包含
  • 配置存储:exe 尾部追加 magic + 长度 + UTF-8 JSON + CRC32
  • 写回机制:退出时由临时 helper 进程重试替换原 exe,使用 MoveFileExW
  • 开机启动:写入 HKCU\Software\Microsoft\Windows\CurrentVersion\Run,C# 版额外回退到启动文件夹快捷方式

实现特点#

  • 无外置配置、无安装器、无注册表应用数据,单文件即可运行
  • C# 界面完全自绘,不依赖第三方 UI 库
  • Rust 版自包含,不依赖 .NET 或 VC 运行库
  • 主题跟随系统实时切换,中英文案、日期格式、编辑器同步切换
  • 周年逻辑处理 2 月 29 日,按当年天数收敛
  • 首次周年显示创建到首次发生的时间进度,之后显示年度进度
  • 窗口边框、拖动、边缘缩放、迷你模式均为自绘/原生 viewport 实现
  • 项目采用 GPL-3.0 许可证

GitHub#

https://github.com/Kesike03/shiguang-countdown

Release 下载:

https://github.com/Kesike03/shiguang-countdown/releases/latest

已存证 · 比特币区块 #974,817 · 2026年11月6日 14:49