- 桌面应用
【免费下载链接】ZoneDeck
The Ultimate Workspace Manager, Switch between work and life, seamlessly生活工作无缝切换,专业的桌面工作区管理助手
ZoneDeck 是一款面向 Windows 的桌面工作区管理工具,主打"生活工作无缝切换":按下一个热键、点一下鼠标或把鼠标甩向屏幕角落,即可一键隐藏并静音指定窗口,再次触发即可恢复。本指南以其官方首页(docs/index.md)所宣示的六大特性为主线,结合使用文档与 Rust 源码实现,完整讲解其隐藏触发、能效控制、崩溃自愈、配置体系与数据管理机制,读完即可掌握 ZoneDeck 的安装、绑定、配置与故障排查全流程。
ZoneDeck 是什么:生活与工作场景的无缝切换
ZoneDeck 的核心定位非常聚焦:当你需要在工作与生活场景之间快速切换时,只需一次触发,即可把涉及隐私的窗口批量隐藏。正如使用文档首页所描述的:"按下一个热键、点一下鼠标,或把鼠标甩到屏幕角落,即可一键隐藏并静音指定窗口;需要时再触发一次即可恢复。"(项目前身为开源 Boss-Key 老板键。)
从v3.0.0起,ZoneDeck 使用Rust + Tauri全面重写,采用核心 + 配置分离的双进程架构(详见 系统架构):
ZoneDeck.exe(核心):纯 Rust 原生实现,后台常驻,负责热键监听、窗口枚举 / 隐藏 / 显示、音频静音、进程冻结、托盘图标与崩溃恢复;config.exe(配置界面):Tauri(Rust + WebView2)实现,按需打开、关闭即退出,负责窗口绑定、热键录制、选项设置与检查更新。
两者通过命名管道\\.\pipe\zonedeck通信,配置保存后核心热重载,无需重启。
系统要求:Windows 10 及以上开箱即用(部分版本另提供 Windows 7 软件包);配置界面依赖系统自带的 Microsoft Edge WebView2 运行时;默认普通用户权限即可运行,仅增强冻结与计划任务最高权限自启需要管理员权限。
特性一:极速隐藏——多窗口、多进程的一键隐藏
两种绑定粒度:窗口隐藏与进程隐藏
"绑定"决定了按下热键时哪些窗口会被隐藏。ZoneDeck 提供两种粒度的绑定(见 绑定窗口与进程):
| 类型 | 粒度 | 说明 |
|---|---|---|
| 窗口隐藏 | 细粒度 | 锁定单个窗口(按窗口标题 + 句柄智能追踪匹配) |
| 进程隐藏 | 粗粒度 | 隐藏某个程序的全部窗口(按可执行文件匹配) |
在源码层面,这两类规则分别对应 crates/common/src/model.rs 中的WindowRule与ProcessRule:
WindowRule记录title/hwnd/process/PID/path五元组锁定单个窗口,句柄失效时按「标题 + 进程路径」追溯找回(对应matching.rs中WindowResolution::Reacquired);ProcessRule按可执行文件路径匹配,by_name为 true 时退化为仅按映像名匹配——这专门应对反作弊进程拒绝OpenProcess、枚举不到路径的场景(matching.rs 的测试用例process_rule_falls_back_to_name_when_the_path_is_unavailable验证了这一行为)。
配置文件兼容旧版扁平绑定:Config::normalize会把 v2 的hide_binding自动迁移为窗口精确规则(config.rs),因此从旧版升级后绑定不会丢失。
添加绑定与过滤现有窗口
在配置界面「窗口绑定」标签页,左栏是当前系统存在的窗口列表,右栏是已绑定规则。操作流程:
- 在左栏勾选一个或多个想隐藏的窗口;
- 点击「添加」:加入「窗口隐藏」生成一条精确锁定该窗口的规则,加入「进程隐藏」生成一条隐藏该程序全部窗口的规则;
- 若刚打开的窗口没出现在列表里,点击「刷新」重新枚举。
左栏还提供三个过滤选项帮助定位目标:搜索框(按标题关键字)、显示后台窗口、显示无标题窗口。
进阶:正则表达式匹配与过宽提示
对于"标题会变化"或"想匹配一类程序"的场景,ZoneDeck 支持正则匹配(窗口正则作用于标题,进程正则默认作用于可执行文件完整路径,可切换为按文件名)。窗口正则默认的种子是.*关键词.*,进程正则是.*程序名\.exe.*。
保存时 ZoneDeck 会拿200 条随机字符串去试每一条正则,命中超过一半(100 条)即判定为"可能过宽"(如.*会匹配一切)并弹提示。该判定逻辑在 crates/common/src/matching.rs:常量BREADTH_SAMPLES = 200、BREADTH_LIMIT = 100,样本由固定种子的伪随机生成器产出(约三成为 Windows 路径形状,其余是长度 1–40 的自由文本),因此同一条正则每次都得到同一结论。
多种触发方式
ZoneDeck 提供五种触发隐藏 / 恢复的方式(详见 热键与鼠标手势),全部在「热键与鼠标」标签页配置:
键盘全局热键
预置五个可自定义的全局热键(默认值定义在 crates/common/src/config.rs 的DEFAULT_HIDE_HOTKEY/DEFAULT_CLOSE_HOTKEY):
| 功能 | 默认值 | 说明 |
|---|---|---|
| 隐藏 / 显示窗口 | Ctrl + Q | 已隐藏时恢复,未隐藏时隐藏 |
| 仅隐藏窗口 | 已关闭 | 只隐藏,不恢复 |
| 仅显示窗口 | 已关闭 | 只恢复,不隐藏 |
| 隐藏前台窗口 | 已关闭 | 只隐藏当前活动的那一个窗口,可连按逐个隐藏 |
| 关闭核心 | Win + Esc | 退出核心(退出前恢复所有窗口) |
默认通过系统的RegisterHotKey注册全局热键;若组合键被其他程序占用,可展开热键开启低级键盘钩子(WH_KEYBOARD_LL)绕开占用,并可进一步开启不传递(按键不传给前台程序)。开启钩子后还能录制更丰富的组合:多个主键同时按(如Q + W,最多四个)与纯修饰键(如Ctrl + Shift)。隐藏是累加的:无论用哪种方式隐藏,窗口都会记在同一份清单里,恢复时一并放出。
鼠标按键连击
支持五颗鼠标键:左键、中键、右键、侧键 1(前进)、侧键 2(后退)。全新安装默认开启鼠标中键双击隐藏,并允许再按一次恢复(MouseSetting的默认实现见 config.rs)。每颗启用的按键可独立配置连击次数(单击 / 双击 / 三连击,最多MAX_CLICKS = 3)、修饰键组合(如"按住 Ctrl 时中键双击")。全局选项连击判定窗口默认 350 毫秒(DEFAULT_MULTI_CLICK_MS,合法范围 150–1000ms)。配置左键 / 右键触发时务必搭配连击或修饰键,避免干扰正常点击。
屏幕四角手势
启用后把鼠标快速移动到屏幕某个角落即可触发隐藏 / 恢复,四个角可分别开关。配套选项:仅快速移动触发(默认开,避免误触)、角落恢复(允许通过移动鼠标到角落恢复窗口)。四角功能依赖底层鼠标钩子WH_MOUSE_LL,仅在启用鼠标或四角功能时才安装——不使用鼠标触发时核心不会安装该钩子。
空闲自动隐藏
开启后,键盘和鼠标在设定时长内无任何操作时自动隐藏已绑定窗口,适合临时离开工位。空闲时长默认5 分钟(DEFAULT_AUTO_HIDE_TIME),底层用GetLastInputInfo判定,无需常驻监听键盘。
隐藏的底层编排:plan / commit 两段式
隐藏并非简单的ShowWindow(SW_HIDE)。核心的 crates/core/src/hide.rs 实现了HideController,采用「意图先行」两段式编排:
plan_hide计算执行计划HidePlan:剪掉失效记录、补齐 PID、按白名单打Skip标记、决定静音 / 冻结 / 暂停媒体的候选集,不做任何窗口动作;- 把计划后的快照先写入
recovery.json(先落盘再动手,隐藏中途崩溃不丢记录); commit_hide同步隐藏窗口(必要时先SW_SHOWMINNOACTIVE再SW_HIDE),静音 / 冻结 / 暂停媒体则交给副作用专职线程(effects_worker.rs)按 FIFO 队列异步执行,消息循环不被慢操作阻塞。
队列内的先后顺序有讲究:暂停媒体 → 静音 → 静置 → 冻结。冻结前统一静置一次(FREEZE_SETTLE_DELAY,整批只等一次),因为进程一旦挂起就再也处理不了暂停命令,且隐藏若还没在屏幕上画完就冻结会留下残影。
恢复(show)时逐条校验记录有效性:句柄须仍存在且仍属于当初的进程(IsWindow+ PID 比对),冻结 / 效率模式记录须匹配进程创建时刻——句柄与 PID 都会被系统回收复用,校验不过的记录跳过并如实计入日志。
特性二:极低占用——Rust 重写的原生核心
v3 使用 Rust 重写后,核心常驻后台的内存占用仅约1 MB(二进制约 350 KB),原生实现不易被杀软误报。这一低占用并非凭空而来,而是架构设计的结果:
- 核心是一个纯原生消息窗口 +
wndproc的常驻进程,不依赖任何运行时; - 输入钩子按需安装:
WH_KEYBOARD_LL仅在有热键开启「低级键盘钩子」或用了纯修饰键 / 多主键组合时才安装,WH_MOUSE_LL仅在启用鼠标 / 四角时才安装; - 空闲检测用
GetLastInputInfo,无需常驻监听键盘; - 不使用任何内核驱动,降低误报与安全风险(详见 系统架构)。
特性三:超多姿势——隐藏后的附加行为
隐藏只是第一步,ZoneDeck 的"超多姿势"体现在隐藏后可以叠加的各类副作用上。这些行为统一抽象为 crates/core/src/effects.rs 的Effectstrait(静音、冻结、暂停媒体、清空工作集、效率模式),生产实现WinEffects支持异步执行,测试时可注入 mock。
隐藏窗口后静音
隐藏时静音目标进程的音频,恢复时自动取消静音。默认开启。基于 Windows Core Audio会话级静音,只静音目标进程,不影响系统其他声音;并且只解除自己设过的静音——隐藏前你已在音量合成器里静音的程序,恢复时会保持静音。静音解除不做存活校验(同映像的其他会话仍要解除),误伤由audio.rs的会话级记账挡着。
同时暂停播放与恢复续播
隐藏同时尝试暂停正在播放的媒体(默认关闭)。优先通过系统媒体控件(SMTC)精确暂停目标进程自己的媒体会话;少数没注册媒体会话的程序回退到发送全局媒体暂停键,且仅在确认目标在出声时才发——因为那个键是播放 / 暂停切换键,目标没在播时发过去反而会把它切成播放。开启「恢复时继续播放」后,恢复显示时续播本次暂停的媒体(只续播本程序暂停过、且当下仍是暂停态的内容;回退暂停键的不会被续播)。
进程冻结与效率模式
进程冻结是隐藏后的一项增强功能:隐藏窗口的同时"挂起"对应进程,使其停止占用 CPU(暂停后台视频解码、游戏渲染等);恢复显示时自动解冻。相关设置位于「能效控制」标签页,详见 进程冻结。
普通冻结:通过OpenProcess(PROCESS_SUSPEND_RESUME)+NtSuspendProcess实现,无需管理员权限即可对当前用户的进程生效(实现见 crates/core/src/freeze.rs,测试用例suspend_and_resume_a_real_child_process验证真实子进程的冻结 / 解冻链路)。
增强冻结:改用微软官方pssuspend64.exe工具,对多进程架构、有渲染子进程的复杂程序效果更强。需要同时满足三个前置条件,缺一即置灰:已开启冻结总开关、核心以管理员身份运行、程序目录下存在pssuspend64.exe。源码中suspend_enhanced会以-accepteula -nobanner参数调用该工具,工具缺失时回退普通冻结并记一条警告日志。
效率模式:冻结之外的另一条路——不停掉进程,而是降为 Windows 效率模式(EcoQoS + 低优先级),进程继续运行只是变慢。无需管理员,不依赖外部工具,Windows 11 上效果最佳。它与冻结相互独立,各有各的开关与作用范围。
作用范围:决定能效控制覆盖到哪些进程,两者可选值相同(定义于 config.rs 的POWER_SCOPES):
| 取值 | 覆盖 | 适合 |
|---|---|---|
| 仅目标进程 | 命中窗口所属的进程 | 默认。单进程程序 |
| 目标进程及所有子进程 | 上者 ∪ 全部后代 | 浏览器、Electron 应用 |
| 同一程序的所有实例 | 系统里所有同映像名进程 | 多开的同一个程序 |
降低内存占用:冻结本身不省内存。开启后,ZoneDeck 会在冻结成功之后清空该进程的工作集(SetProcessWorkingSetSizeEx,哨兵值usize::MAX),把驻留物理内存的数据换出到页面文件。仅对被冻结进程生效,恢复时数据要从页面文件读回,机械硬盘上可能明显变慢。
能效统计:能效控制页底部展示累计冻结进程数、累计冻结时长、累计释放内存(清空工作集前后各读一次工作集取差值),以及据此估算的节电量与碳排放。
白名单:逐程序、逐项跳过
白名单让你对特定进程的窗口逐项跳过隐藏、冻结、静音中的任意一件(见 白名单)。每条条目有三个独立开关:忽略隐藏、忽略冻结、忽略静音,按文件名(默认)或完整路径匹配,比较不区分大小写。
全新安装时预置一条explorer.exe条目(忽略隐藏 + 忽略冻结)——文件资源管理器就是桌面与任务栏本身,冻结它会让整个 Windows 外壳卡住。此外有一条带锁的内置条目恒不冻结:ZoneDeck 核心自身(映像名ZoneDeck.exe、core.exe),它在 matching.rs 中由BUILTIN_FREEZE_GUARDS常量兜底,不依赖任何用户配置,测试builtin_guards_block_freezing_the_core_with_empty_whitelist专门验证了空白名单下核心仍不可被冻结。
其余隐藏行为选项
- 同时隐藏当前活动窗口(默认开):隐藏热键按下时把当前前台窗口一并藏起;
- 同时隐藏 ZoneDeck 托盘图标(默认关):连自己的托盘图标一起隐藏,注意图标藏掉后只能靠热键或鼠标手势恢复;
- 同时隐藏 ZoneDeck 配置窗口(默认开):触发隐藏时若配置窗口正开着,一并藏起,恢复时随其余窗口显示;
- 隐藏前先最小化窗口(默认关):先最小化再隐藏,恢复时还原成隐藏前形态(最大化窗口仍保持最大化)。
主要配置项默认值速查
所有选项均来自 crates/common/src/config.rs 的Setting结构:
| 配置项 | 默认值 |
|---|---|
| 隐藏 / 显示热键 | Ctrl+Q |
| 关闭核心热键 | Win+Esc |
| 隐藏后静音 | 开启 |
| 同时隐藏当前活动窗口 | 开启 |
| 同时隐藏配置窗口 | 开启 |
| 隐藏自身托盘图标 | 关闭 |
| 隐藏前最小化 | 关闭 |
| 同时暂停播放 / 恢复续播 | 关闭 / 关闭 |
| 进程冻结 / 效率模式 / 降低内存占用 | 全部关闭 |
| 作用范围 | 仅目标进程 |
| 鼠标中键双击隐藏 | 开启(允许再按恢复) |
| 连击判定窗口 | 350 ms |
| 空闲自动隐藏 | 关闭(时长 5 分钟) |
| 界面语言 | 跟随系统 |
| 日志保留天数 / 日志等级 | 7 天 / 警告 |
特性四:稳如磐石——崩溃自愈三层防线
隐藏窗口本质上是把窗口设为不可见。万一忘了热键、核心异常退出,窗口会不会"永远消失"?ZoneDeck 核心内置了崩溃自愈三层防线(详见 窗口恢复与崩溃自愈),并配合手动恢复工具兜底。
第一层:崩溃日志
核心把关键事件与 panic 信息写入数据目录logs文件夹下的日志文件,按天切割为ZoneDeck-YYYY-MM-DD.log,按日志保留天数自动清理过期文件(设为 0 则关闭日志)。日志分debug/info/warn/error四级,用户在配置界面选择的log_level是记录门槛,默认warn只记警告与错误。每次运行各记一条不受等级过滤的会话标记:[START](版本、配置 schema、生效等级与数据目录)与[EXIT](正常退出及来由),日志末尾没有[EXIT]即上次是崩溃或被强杀。日志会统一脱敏:窗口一律以「进程名 + 句柄 + PID」指代,用户目录替换为%USERPROFILE%,因为日志可能被反馈功能上传。
第二层:崩溃恢复
每次隐藏窗口时,核心把"隐藏了哪些窗口、冻结 / 静音了哪些进程"先写入recovery.json(tmp + rename 原子替换);正常显示或退出时删除该文件。核心重启时若发现该文件仍存在,说明上次是异常退出,此时逐条核对记录:
- 全部对得上:说明隐藏意图没变,窗口继续保持隐藏,核心接手记录,之后照常用热键恢复;
- 有记录对不上(窗口已关闭、句柄被回收、或已被别的程序显示):丢弃这些记录,不去动那个句柄现在指向的窗口,同时记警告日志并弹通知;
- 一个窗口都没接管成功:说明这轮隐藏已失效,核心把还活着的进程解冻、取消静音、撤销效率模式。
快照带开机时刻与进程创建时刻,跨重启的过期快照直接丢弃。
第三层:计划任务看门狗
开机自启若以计划任务方式注册,会带有失败自动重启策略(RestartOnFailure:崩溃后约 1 分钟内自动重启,最多 3 次)。release 构建panic = "abort",panic 钩子写完日志后以非零码退出,正好触发计划任务重启。核心崩溃 → 计划任务重启核心 → 重启后由第二层防线接手隐藏记录,形成闭环。
窗口恢复工具
手动兜底:配置界面 → 通用设置 → 工具 → 窗口恢复工具或托盘菜单 → 窗口恢复工具,工具列出系统中所有窗口(包括当前不可见的),勾选后即可恢复显示,也支持冻结 / 解冻窗口。核心运行时,工具的显示 / 隐藏操作会交给核心执行,恢复时连同解冻、取消静音一起完成。
特性五:现代界面——无边框配置界面
v3 的配置界面基于 Tauri 2 + Svelte 5(前端架构见 docs/dev/frontend.md),具备:
- 无边框自绘窗口与亮 / 暗 / 跟随系统三态主题(状态栏按钮可在三态间循环切换);
- 配置自动保存:所有改动在停止操作后自动写盘并即时生效,核心收到
reload_config命令后热重载,无需重启; - 内置公告与反馈上报:「关于与反馈」页可检查更新(默认只看稳定版,可开启包含预览版)、展示服务端公告(按当前界面语言获取)、提交问题反馈(可选转换为 GitHub Issue)与匿名使用统计(首次启动征求同意,同意前不采集任何数据,随时可在「通用设置 → 隐私」退出);
- 界面语言:配置界面与核心托盘菜单、气泡通知支持简体中文 / English / 繁體中文,默认跟随系统显示语言,也可在「通用设置 → 语言」手动指定,改动即时生效无需重启。
配置界面底部还有状态栏:左侧显示核心运行状态(未运行 / 普通用户 / 管理员)并提供启动、管理员启动、重启、退出按钮;右侧提供打开日志目录、切换主题、热键监控状态与保存状态提示。
特性六:开源免费——安装、数据与清理
安装版与便携版
自 v3.0.0 起每个版本提供两种程序包(详见 安装与版本选择):
| 类型 | 说明 | 适用场景 |
|---|---|---|
| installer(安装版) | 完整封装,一键安装、更新、卸载 | 推荐。高效安全地管理 ZoneDeck |
| portable(便携版) | 核心 + 配置程序的压缩包,解压即用 | 便携、绿色使用、U 盘随身携带 |
安装版可"仅为我安装"(默认,无需管理员,装到%LocalAppData%\Programs\ZoneDeck)或"为所有用户安装"(需管理员,装到C:\Program Files\ZoneDeck)。便携版解压后目录含ZoneDeck.exe(常驻核心)、config.exe(配置界面)、cleanup.ps1、LICENSE.txt与多语言 README。两个可执行文件需放在同一目录,通过共用的config.json与命名管道协作。
数据存放位置与迁移
设置、日志、恢复文件与缓存存放在同一数据目录,定位逻辑在 crates/common/src/paths.rs:
| 情形 | 数据目录 |
|---|---|
| 安装版 | %APPDATA%\ZoneDeck |
| 便携版,程序目录可写 | 程序目录 |
| 便携版,程序目录写不进去 | %APPDATA%\ZoneDeck |
程序凭程序目录里的installed.marker(或兜底判断卸载程序unins*.exe)分辨自己是安装版还是便携版,请勿删除该文件。便携版放在不可写位置(如C:\Program Files或只读介质)时会自动改用%APPDATA%\ZoneDeck并在界面说明原因。位置发生变化时(如把便携版装成了安装版),原config.json会在首次启动时自动搬过去,绑定与热键全部保留。
配置界面用到的浏览器组件另有一份数据在%LOCALAPPDATA%\cn.hanloth.zonedeck.config,两个版本都一样,删程序文件夹清不掉它。
卸载与清理
- 安装版:通过系统"应用和功能"或卸载程序卸载,会询问是否保留配置文件;
- 便携版:先退出核心,在程序目录中打开 PowerShell 执行随包的清理脚本:
powershell -ExecutionPolicy Bypass -File cleanup.ps1脚本会先列出将要删除的内容并等你确认,随后清理%LOCALAPPDATA%\cn.hanloth.zonedeck.config、可能存在的%APPDATA%\ZoneDeck,以及开机自启留下的计划任务ZoneDeckAutostart和注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ZoneDeck Application。程序目录本身不会被删,跑完后自行删除即可。
开机自启
双保险机制(见 开机自启):首选计划任务(登录触发,可请求最高权限运行,带失败自动重启能力),计划任务不可用时回退注册表启动项。托盘菜单或配置界面均可切换,开关旁小字会标注当前生效的注册方式。卸载 / 迁移前请先关闭自启,以免残留指向旧路径的失效自启项。
配置文件的容错与迁移
配置config.json的加载并非简单读取(config.rs 的load_reporting):
- 解析失败时回退默认配置,原文件改名为同目录
*.bad备份; - 配置来自更高的 schema 版本时复制留底(
.bak),配置本身照常生效; - 保存走同目录临时文件 + rename 原子替换,中途断电不会写坏配置;
- 旧版扁平字段(
hide_binding、middle_button_hide、click_to_hide、freeze_whole_tree等)在normalize中自动迁移,幂等可重复执行。
配置的顶层结构为:version(schema 版本)、app_version、hotkey、setting、notifications、verhub、window_rules、process_rules、whitelist。窗口信息以大写PID字段序列化,兼容旧版 config.json(model.rs 的测试serializes_pid_uppercase_key验证了这一点)。
相关文档导航
ZoneDeck 仓库内的文档体系完整,按需查阅:
- 使用文档:简介、快速上手、绑定窗口与进程、热键与鼠标手势、隐藏设置、进程冻结、白名单、提示设置、通用设置、开机自启、窗口恢复与崩溃自愈、检查更新与反馈、安装与版本选择、常见问题
- 开发文档:系统架构、IPC 协议、前端与配置界面、配置参考、测试
- 项目说明:README(含应用截图与基础使用说明)
- 桌面应用
【免费下载链接】ZoneDeck
The Ultimate Workspace Manager, Switch between work and life, seamlessly生活工作无缝切换,专业的桌面工作区管理助手
相关推荐
ZoneDeck 桌面工作区管理器:从一键隐藏到崩溃自愈的完整技术解析
ZoneDeck 桌面工作区管理器:从一键隐藏到崩溃自愈的完整技术解析 ZoneDeck 是一款面向 Windows 的桌面工作区管理助手,核心能力是"一键隐藏
桌面应用ZoneDeck 桌面工作区管理实战:极速隐藏、进程冻结与崩溃自愈的完整实现指南
ZoneDeck 桌面工作区管理实战:极速隐藏、进程冻结与崩溃自愈的完整实现指南 ZoneDeck 是一款面向 Windows 10+ 的开源桌面工作区管理助手
桌面应用ZoneDeck 桌面工作区管理工具实战指南:窗口一键隐藏、进程冻结与崩溃自愈
ZoneDeck 桌面工作区管理工具实战指南:窗口一键隐藏、进程冻结与崩溃自愈 ZoneDeck 是一款面向 Windows 平台的桌面工作区管理工具,目标是在
桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考