Skip to content

1.3.3 大量安全性改进,支持mp3, flac

Choose a tag to compare

@Mikachu2333 Mikachu2333 released this 28 Jul 15:32
  • 取消原有资源嵌入,大幅削减体积
  • 支持 mp3、flac
  • 修正 Win32 MSG 结构布局,消除 32 位目标潜在越界。
  • 普通全局快捷键改用 RegisterHotKey + MOD_NOREPEAT:
    • 删除低级键盘钩子。
    • 防止按键重复连续切换。
    • 退出时调用 UnregisterHotKey。
  • 音频改为 rodio 应用内播放:
    • volume 只影响 Tip Clock。
    • 不再修改 Windows 系统音量。
    • 同秒多个声音按配置顺序排队播放。
    • 自定义 WAV 限制在 EXE 目录,拒绝绝对路径、子目录和路径穿越。
  • 修复 GDI/GDI+ 资源管理:
    • GDI API 改为链接正确的 gdi32。
    • 检查 DC、DIB、位图数据指针和 SelectObject 结果。
    • 保存并恢复原位图后再释放。
    • 释放不透明度面板字体。
    • 增加统一 GUI、GDI+、热键清理。
  • 修复窗口销毁期间的重入死锁。
  • GUI 回调不再持有 GUI 锁时获取配置锁,消除锁顺序反转。
  • 修复 UpdateLayeredWindow 的 SIZE FFI 参数类型。
  • ring = "none" 现在会静音显示提醒窗口。
  • 修复无提醒时错误记录“已处理提醒”的逻辑。
  • 调度改为检查两次轮询之间的时间范围,短暂阻塞不再轻易漏掉提醒。
  • “下次提醒”精确到秒,并标识次日提醒。
  • 跳过计数改为饱和递增,避免整数回绕。
  • 空日程现在是合法配置;全部日程无效时明确报错,不再静默恢复默认日程。
  • 缺失的 [general] 字段使用默认值。
  • 配置字符串使用 TOML 转义,避免引号或反斜杠破坏文件。
  • 配置使用临时文件、刷新和 ReplaceFileW 原子替换。
  • EXE 目录不可写时自动使用:
    • %LOCALAPPDATA%\TipClock\config.toml
    • 已存在的便携配置会在首次回退时迁移。
  • 自动启动命令正确引用 EXE 路径,并检查注册表 API 返回值。
  • 重启启动失败不再静默退出。
  • 菜单构建和打开配置失败增加明确错误处理。
  • DPI 优先使用 Per-Monitor V2,并处理 WM_DPICHANGED。
  • 修复 GDI+ 点大小的重复 DPI 缩放。
  • 窗口布局使用显示器工作区:
    • 支持多显示器负坐标。
    • 避开任务栏。
    • 确保完整窗口位于最近显示器工作区。
  • 同步README 中不透明度控件、音量、配置回退及自定义 WAV 说明