Repository navigation
v0.6.0 - a takeover line and a lit pointer
让桌面看得出谁在操作
动作运行期间,屏幕顶部一行大号半透明字写明操作者与出口 ——
DSH 正在操作你的电脑 · 按 Esc 取消 —— 光标处跟着一个蓝色光晕。
没有屏幕边框:第一版画过,2560x1600 上要么在蓝壁纸里看不见,要么重得像相框。
Esc 中止的是整个批次,不是当前一步。 光晕盖章的取消令牌本来就由动作循环轮询,
现在它属于整个 desktop_sequence,所以中间的 wait 也会被打断,结果里会写明原因:
the person pressed Esc; the batch stopped where it was。实测:12 秒的批次,
第 4.5 秒按 Esc,7.1 秒返回。
光晕是画出来的,从不写入光标:不调用 SetCursorPos,不装输入钩子。
Windows 永远把真实光标画在所有窗口之上,所以光晕垫在它下面 —— 看起来更大更亮,
但没有替换它,也就没有别人那种让鼠标发卡的问题。
顺带修的三个
- 标题比较前先剥零宽字符。 Edge 自己的标题里
Microsoft Edge中间藏了个 U+200B,
于是focus "Microsoft Edge"报 "no visible top-level window matches" —— 而那个窗口人眼看得清清楚楚。 focus允许只给hwnd,和它的说明一致;之前步骤校验强制要求title。- 每个脚本必须保留 UTF-8 BOM。 PowerShell 5.1 把无 BOM 的文件按 ANSI 读,
中文标题就成乱码。script-smoke现在会因此失败 —— 它当场抓出另外三个已经丢了 BOM 的脚本。
覆盖层还必须不抢前台:它在第一次 Show 之前就设好 WS_EX_NOACTIVATE,
否则一个置顶窗口会抢走焦点,反而破坏它自己要服务的那些动作。