Skip to content

v0.9.5 — 引导整理:那个【新】标记一直是假的

Choose a tag to compare

@ExpertKT ExpertKT released this 19 Sep 02:44
· 16 commits to main since this release

把「引导性质的东西」整个盘了一遍

起因是一个具体的错:引导里的【新】标记是假的。

原来的实现是一个写死的布尔量,贴在 7 条说明上(传递模式、贴图、取字、符号、界面语言、自动更新…)。
于是每次升级那 7 条都重新标一遍【新】 —— 升到 0.9.4,还在告诉你「传递模式」是新的,而那是 0.9.0 的东西。

标错的【新】比不标更糟:你会以为功能是刚加的,然后去找一个早就存在、早就该会的东西。

现在:每条说明都记着自己是什么版本加的,只有比你看过的那版更新的才标【新】。

你看过的版本 标【新】的条数
0.9.5 0
0.9.4 1(v0.9.5 新加的那条)
0.8.0 3(自动更新 / 传递模式 / 新增说明)
19(全部)

全新安装一条都不标 —— 对第一次来的人每一条都是新的,标满等于没标。

这 5 条已经是自动化测试里的断言,不是靠人眼看的。


为什么截图时微信会「突然消失」

这是很多人会撞上、但完全猜不到原因的事,已写进引导和 README:

微信给 Windows 设了「把我排除在截屏之外」SetWindowDisplayAffinity +
WDA_EXCLUDEFROMCAPTURE,Windows 10 2004 起的系统级机制)。

它的效果不是"拍成黑块",而是让抓屏透过去看到窗口后面的东西 ——
所以你按下截图热键、浮层盖住屏幕的那一刻,微信的位置显示的是它背后的桌面,看起来就是"微信咻地消失了"。

不是 SnapWheel 的问题,换任何截图工具都一样。

30 秒自助验证:按 Win+Shift+S(Windows 自带截图)框住微信 —— 同样拍不到,
那就说明是微信在反截屏。

顺手一提:SnapWheel 自己也给轮盘设了同一个标志,否则轮盘会拍进你截的每一张图里。
同一个机制,两边各用一次。

这不是推测,是量出来的。新增 tests/affinity-probe.cs,一条命令列出所有"反截屏"的窗口:

0x11  pid 59664  Weixin | Qt51514QWindowIcon | 微信   <== 从截屏里整个删掉
0x11  pid 57552  SnapWheel 快照轮环 | ...             <== 同一个机制(它自己故意设的)

还补了两条本来就该有的说明

删掉 / 撤回 / 退出:右键删除、托盘「撤销上一次删除」、关闭键长按 0.65 秒退出程序。

这三件事之前引导里一个字都没提,而删除还是单击右键即生效的 ——
相当于一个会丢数据的操作完全没有说明。


工程

  • 版本比较只留一份:更新检查要「远端比本地新吗」,引导要「这条说明比你看过的那版新吗」——
    现在统一到 AppInfo.IsNewer。两处各写一份迟早不一致。
  • ui-probe 测试以前只能手动跑,现在进了标准测试套件 —— 否则上面那 5 条【新】断言等于没写。

完整版 SnapWheel-v0.9.5-full.zip无万能键版 SnapWheel-v0.2.22-nokey.zip

绿色免安装,解压双击即可,零第三方依赖。