Skip to content

v0.4.7

Choose a tag to compare

@corvofiox corvofiox released this 22 Oct 21:09
· 10 commits to main since this release

Com Bridge v0.4.7

审查项 #4 / #5 / #7 的修复。功能只增不减,配置格式向后兼容。

#4 剪贴板:支持注册格式 "PNG"

以前只认 CF_DIB(标准位图)。有些程序(部分浏览器、截图与设计工具)只把图
放进注册格式 PNG
,完全不提供 CF_DIB —— 这类图以前一张都采不到。

现在:

  • 采样优先取注册的 "PNG",没有才回退 CF_DIB。PNG 是压缩格式,同一张图
    比裸 DIB 小一个数量级(4K 截图约 2MB vs 33MB),跨机传输更快;
  • 接收端两种都写:既写注册的 "PNG"(现代程序优先读它),也从 PNG 解出
    一份 CF_DIB(只认位图的老程序照样能粘);
  • 线上协议新增格式 id 4 = png,原有 id 不变。

#5 传输有进度了,也能中止

以前传 200MB 文件夹时全程一句话都不打印:不知道是在传、卡住了、还是早就
失败了,也没法中止,只能杀进程。现在:

  • 每 0.5 秒最多一行进度:[clip] 发送中 43% (86.0/200.0 MB, 74.2 MB/s);
    收尾再给一行 [clip] 已发送 200.0 MB 用时 2.7s, 74.1 MB/s;
    失败会写清原因(传输中断: … / 等对端确认超时 / 对端拒收);
  • 单次上限 2GB → 16GB(原来那个数字是随手定的门槛,不是技术限制);
  • 停止服务即中止在途传输,不再出现"关不掉、要等它传完";
  • 状态窗口新增「跨机功能 · 剪贴板」一行:发送项数/流量、接收项数/文件数、
    排队、取消、失败,一眼能看出刚才那份文件夹到底传过去没有。

#7 自动更新提示 + 自启结论

  • 新增自动更新检查:启动后后台查一次 GitHub Release(6 小时最多一次,
    结果缓存进配置,失败静默)。有新版本时窗口底部提示会变成
    「发现新版本 vX,点此下载 ↗」,日志里同时留一行。
    刻意不做自动替换 exe —— 运行中替换自己要下载到临时目录、再起一个替换
    进程再退出,一旦失败就是"程序打不开",代价远大于收益。
  • 开机自启:查证后确认本程序已有"登录计划任务 + 最高权限"这条路
    (设置里的「开机自启(管理员)」),它就是 Windows 上服务级自启的等价物。
    真正的 Windows 服务跑在 Session 0,拿不到桌面输入、光标和托盘,做不了这件事
    —— 所以不是缺功能,而是那条路在本场景不可行。
  • i18n(界面多语言):本次没有做,见下。

关于 i18n

这不是一个能顺手带上的改动:界面文案硬编码在 gui.py / gui_windows.py /
tray.py 与一整套日志里,约 800 处,涉及布局宽度(中文两字宽的标签列、
中文比英文短的状态文案)。半套做完的界面(一半中文一半英文)比纯中文更糟。
要做就单独一轮:抽出 i18n.py(tr() + 两份字典)→ 逐模块替换 → 用
截图对比确认没有把布局撑坏。这一轮不发半成品。

测试

新增 48 项:tests/test_clipboard_png.py(12)、tests/test_clip_progress.py(14)、
tests/test_update_check.py(22)。全量 858 通过(3 项 test_single_instance
在"程序正在运行"时会失败,属环境所致)。