Windows 上的隐私保护经常被简化成“按 Win+L 锁屏”。但真实使用中,用户未必还坐在键盘前:可能已经站起来准备离开,也可能正在把电脑临时交给别人。此时真正需要解决的,不是再增加一个按钮,而是让不同触发方式能够稳定地执行同一套保护策略。
1. 先把问题拆成三层
一个可维护的隐私保护工具,可以把流程拆为三层:
- 触发层:接收快捷键、设备状态变化、手势或离席事件。
- 策略层:根据当前场景决定要执行哪些保护动作,以及动作顺序。
- 动作层:隐藏指定窗口、锁定电脑、关闭敏感界面,或者在用户预先开启时执行更强的保护动作。
这样拆分后,新增一种触发方式时,不需要复制整套保护逻辑;调整保护动作时,也不必改动每个触发入口。
2. 触发事件需要先归一化
不同来源的事件格式差异很大。快捷键是瞬时事件,设备断开可能连续抖动,摄像头判断则通常带有置信度和持续时间。
比较稳妥的做法,是先把它们转换成统一事件,例如:
triggerType: hotkey | device | gesture | away
occurredAt: timestamp
confidence: optional
sourceId: optional
策略层只处理统一事件,不直接依赖摄像头、蓝牙或 USB 的具体回调。设备重复通知还应做去抖和合并,避免同一轮保护被连续触发。
3. 保护动作必须可重复、可抢占
隐私保护属于时间敏感任务。普通查询、界面刷新或日志写入,不应挡在保护动作前面。
动作链设计时要注意三点:
- 幂等:窗口已经隐藏或电脑已经锁定时,再执行一次不应产生错误状态。
- 优先级:保护任务应优先于普通后台任务。
- 串行化:同一个受保护目标的打开、锁定和关闭不能并发执行。
动作之间也应区分依赖关系。例如隐藏窗口可以很快完成,文件关闭和长期数据保护则可能需要更多时间。把快速动作放在前面,用户会更早得到可见的保护结果。
4. 屏幕隐私和文件隐私不是同一个生命周期
隐藏窗口或锁屏,解决的是“此刻屏幕上不要继续显示”。照片、证件、合同和聊天备份等文件,则需要在电脑交给别人之后仍保持不可读取。
因此,文件保险箱不应只是动作链里的一个临时窗口效果。它需要独立的打开、锁定和恢复流程,并且关闭后仍保持受保护状态。屏幕动作负责即时响应,保险箱负责长期存放,两者结合才覆盖完整场景。
5. 用户体验决定触发是否真的有用
触发方式越多,不代表体验越好。用户通常只需要一个最自然的主动触发,再加一个可靠的自动补充。
设计时应让用户提前看到会发生什么,并允许分别选择要隐藏的窗口、是否锁定电脑,以及是否启用更强的动作。真正触发时则应减少确认步骤,因为紧急场景往往没有时间阅读弹窗。
在开发超级看门狗 SuperWatchDog 时,我们把重点放在这条完整链路上:用户提前配置,触发事件统一进入策略,紧急动作优先执行,而长期私密文件交给独立的保险箱流程。
结语
这类工具最关键的并不是某一种检测技术,而是触发、策略和动作之间的边界。边界清楚,系统才容易扩展;动作可重复、可抢占,紧急时才足够可靠;把屏幕隐私与文件隐私分开处理,产品体验也会更符合真实使用场景。