Skip to content

ToastFish v3.2.5

Choose a tag to compare

@Zenkuetu Zenkuetu released this 07 Oct 12:52
· 54 commits to main since this release

修复内容

#1 惊喜弹窗空格误触答题

惊喜复习弹窗跳出时,无意按下的空格 / 回车会被判定为选择了第一个选项,直接写入 SM2 评分。

  • 根因:WinForms Button 获得焦点后,空格与回车都会触发 Click;而弹窗显示时第一个按钮会自动获得焦点。惊喜弹窗是在用户打字时突然弹出的,因此极易误触。
  • 修复:新增 SuppressSpaceEnterKeys() —— KeyPreview + KeyDown 拦截 Space / Enter;三个答题弹窗(单词 / 复盘测验 / 惊喜复习)的选项按钮补 TabStop=false,不再参与焦点。
  • 鼠标点击与 Alt+1~4 全局热键不受影响;ShowWithButtons(是/否对话框)保留回车确认语义。

#2 全新电脑仪表盘打不开

新电脑上没有 Python,点「学习报告 📊」只有转圈的鼠标指针,什么都不发生。

  • 根因(三重叠加):
    1. 安装包只打包了 .py 脚本,没有 Python 解释器;
    2. 调用方写死 FileName = "python",在无 Python 的机器上命中微软商店的应用执行别名(拉起商店、脚本根本不执行),还要白等 15 秒 —— 那个转圈就是它;
    3. Dashboard_Click 只有 if (File.Exists(...)) 没有 else,而 dashboard.html 不进安装包 → 失败完全静默。
  • 修复:
    • 安装包内置 Python 3.11.9 embeddable 精简运行时(剔除 TLS 组件,14.7MB),开箱即用;
    • 解释器解析改为候选链:内置 Resources\python\python.exe → %WINDIR%\py.exe -3 → PATH 中的 python.exe(排除 WindowsApps 商店别名);
    • 生成失败时弹窗明确告知「需要 Python 3」并给出解决办法,不再静默。

安装包

  • 文件:ToastFish-v3.2.5-Setup.exe(本版起改用含版本号的文件名 —— 版本号唯一来源为 toastfish.iss 的 #define MyAppVersion)
  • 大小:33.7 MB(含内置 Python 运行时)
  • 安装位置:%LOCALAPPDATA%\ToastFish(无需管理员权限)
  • 学习数据保护不变:inami.db 覆盖安装不覆盖、卸载不删除
  • 程序文件版本:3.2.5.0

验证

  • MSBuild 编译通过
  • Alt+Q 弹窗正常;空格 / 回车被拦截(弹窗保持打开),Alt+1 答题正常
  • 内置 Python 按程序调用方式实跑生成 dashboard.html(956,288 字节)
  • 安装包构建成功;ToastFish.exe 与安装包的 FileVersion 均为 3.2.5.0
  • 数据库 integrity=ok,与启动快照统计一致,无污染