Repository navigation
ToastFish v3.2.5
修复内容
#1 惊喜弹窗空格误触答题
惊喜复习弹窗跳出时,无意按下的空格 / 回车会被判定为选择了第一个选项,直接写入 SM2 评分。
- 根因:WinForms
Button获得焦点后,空格与回车都会触发Click;而弹窗显示时第一个按钮会自动获得焦点。惊喜弹窗是在用户打字时突然弹出的,因此极易误触。 - 修复:新增
SuppressSpaceEnterKeys()——KeyPreview+KeyDown拦截Space/Enter;三个答题弹窗(单词 / 复盘测验 / 惊喜复习)的选项按钮补TabStop=false,不再参与焦点。 - 鼠标点击与
Alt+1~4全局热键不受影响;ShowWithButtons(是/否对话框)保留回车确认语义。
#2 全新电脑仪表盘打不开
新电脑上没有 Python,点「学习报告 📊」只有转圈的鼠标指针,什么都不发生。
- 根因(三重叠加):
- 安装包只打包了
.py脚本,没有 Python 解释器; - 调用方写死
FileName = "python",在无 Python 的机器上命中微软商店的应用执行别名(拉起商店、脚本根本不执行),还要白等 15 秒 —— 那个转圈就是它; 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,与启动快照统计一致,无污染