功能 操作文档 接入文档 下载 GitHub 仓库

操作文档

从解压到恢复任务栏:安装与启动、四个模块的日常操作、配置文件与故障排查。对应 DCX v0.1.2,Windows 11 x64。

v0.1.2 Windows 11 x64 无需安装 约 15 分钟

01安装与启动#

DCX 是便携应用:从 官网下载页 或 GitHub Releases 获取压缩包,解压、运行,没有安装器,也不需要写入系统目录。设置与索引全部保存在 %LOCALAPPDATA%\dcx\。

请解压整个 DCX 文件夹,不要只取出 exe。宿主按自身所在目录查找四个 exe、dcx_engine.dll 与 wh_injector.exe,缺一个就会出现「已停止」或注入失败。

启动方式

方式行为适用场景
start-dcx.bat只留托盘,不弹设置窗口日常使用、开机自启
dcx-host.exe默认带设置窗口启动第一次配置
dcx-host.exe --no-settings不带设置窗口(自启项就是这条)登录后静默运行

分发包内容

文件作用
dcx-host.exe平台:托盘、注入看门狗、应用生命周期、全局热键、唯一设置中心
dcx-box.exe桌面收纳盒(独立进程)
dcx-search.exe文件检索(默认关闭,热键按需拉起)
dcx-island.exe桌面信息岛(默认关闭,设置中心开启)
dcx_engine.dll注入 Explorer 的任务栏主题引擎
wh_injector.exe外部注入器,宿主启动时调用
stop-dcx.bat / stop-dcx-all.bat停止全部 DCX 进程;后者用于替换二进制前释放占用

首次运行

首次运行可能被 SmartScreen 提示,因为构建与发布包都没有签名。选择「更多信息 → 仍要运行」即可。请只从官网下载页或本仓库的 Releases 下载,并用 SHA256SUMS.txt 校验:

Get-FileHash .\DCX-v0.1.2-win64.zip -Algorithm SHA256

系统要求是 Windows 11 x64。32 位进程不会加载 64 位引擎,但任务栏本身是 64 位 Explorer,不受影响。

02托盘与设置中心#

宿主启动后会在通知区放一个图标。左键单击打开设置窗口,右键才弹菜单(设置 / 桌面整理 / 退出并恢复任务栏 / 退出)。设置窗口已经打开时,再次左键只会把它提到前台,不会开第二个。

设置中心结构

左侧导航固定五项,右侧是页标题与卡片。所有改动改完即生效:防抖 220 ms 后原子写入,引擎约 1 秒内热重载,没有「保存」按钮。

页面内容
任务栏样式外观(形状、缩放、间距、悬停)、尺寸、行为(自动隐藏、开机自启)
桌面整理收纳盒启停与热键、收纳库目录、分类规则;顶部是「独立应用」状态清单
文件检索常驻开关、热键、检索范围、内容检索策略
桌面信息岛唯一启停开关、时钟与性能、任务与剪贴板、通知渠道、出站凭据、能力边界
关于运行状态、平台行为、恢复并退出

状态行

窗口底部如实显示三种状态:

  • 已写入 · 引擎约 1 秒内重载 —— 引擎已注入,改动会生效。
  • 已写入配置 · 引擎未注入 —— 文件写成功,但任务栏还没被接管;点「重新应用」补注入。
  • 失败原因 —— 写入失败或注入失败,最常见的是宿主目录里没有 wh_injector.exe。

关闭窗口 ≠ 退出程序

点右上角 × 只关闭设置窗口:宿主、托盘、看门狗与已注入的引擎都还在,任务栏保持当前外观。要真正退出并恢复任务栏,用托盘菜单的「退出并恢复任务栏」,或设置 → 关于 → 退出。

设置窗口里的恢复按钮是行内二次确认:点一次变红为「确认恢复」,5 秒内再点才执行。执行时会结束并重启 explorer.exe,这是唯一能让任务栏外观回到系统默认的方式。

03任务栏主题#

dcx_engine.dll 注入 explorer.exe,把主题规则写进任务栏 XAML。设置中心写 settings.toml,引擎每秒轮询修改时间并重建规则——不需要重启 Explorer。

可调项

设置取值效果
形状胶囊 / 卡片胶囊两端大圆角;卡片为小圆角矩形。切换即时生效
图标缩放50–125%只改渲染缩放,不隐含任务栏高度
图标间距−6…+6 px每个任务按钮的左右外边距;负数收紧
悬停Background / Dock只高亮,或按距离放大并推开相邻图标
任务栏高度30–44 DIP整条任务栏(dock + 托盘)同步伸缩,不做裁剪
自动隐藏开 / 关走 shell 自身的 SHAppBarMessage,不是 settings.toml 键

为什么改了没反应

  1. 看设置窗口底部状态行:如果是「引擎未注入」,点「重新应用」。它会先重写 settings.toml(内容没变也会刷新修改时间),再跑一次注入扫描。
  2. 确认 wh_injector.exe 与 dcx_engine.dll 都在 dcx-host.exe 同目录;开发环境可用 DCX_INJECTOR / DCX_ENGINE_DLL 指到别处。
  3. Explorer 重启后主题会丢,这是正常的——宿主看门狗会在约 5 秒内重新注入。

删除或重置 settings.toml 不会把任务栏恢复成系统默认:缺省值本身也是一套主题参数。要恢复外观只能用「退出并恢复任务栏」。

引擎只处理主任务栏。多任务栏与第三方任务栏壳没有适配;Windows 大版本更新后,XAML 视觉树可能变化,需要重新核对元素路径。

04桌面收纳盒#

收纳是物理移动文件,不是隐藏图标。桌面仍由 Explorer 原生管理;文件被收进盒子时,它从桌面移到收纳库(默认 文档\dcx收纳),桌面图标随之消失,文件本身不删除。

打开与收起

  • 全局热键 Alt + D 唤出 / 收起。热键可在「设置 → 桌面整理」修改或关闭。
  • 任务栏上的收纳盒按钮是独立窗口,点一下打开弹层。
  • 底部的「收纳」按钮:单击复制收纳库路径,双击打开收纳库文件夹。

收纳与放回

  1. 把桌面文件拖进盒子窗口,或拖到信息岛胶囊上,文件会被移动到收纳库。
  2. 在盒子里把文件拖回桌面,即恢复到桌面根目录。
  3. 整个过程不修改文件属性,也不绘制桌面层;没有「幽灵图标」需要额外清理。

分类

分类是收纳库内的虚拟元数据,不改变文件内容:

  • 扩展名规则自动归类为文档、图片、压缩包、媒体、应用、其他。
  • 手动拖拽或右键菜单可以覆盖自动分类,结果写入 organizer.toml 的 overrides。
  • 支持列表 / 网格视图、排序、搜索、文件夹展开、拖放、右键菜单、新建文件夹、重命名与回收站删除。

更换收纳库目录

「设置 → 桌面整理 → 收纳库目录 → 更改…」。确认后会迁移已有文件并重建根目录,手动分类记录会跟随迁移。收纳库是普通目录,可以放到其他磁盘。

收纳库里的文件就是你的原文件。删除收纳库目录等同于删除这些文件;「回收站删除」才会进回收站。

06桌面信息岛#

独立进程 dcx-island.exe,默认关闭。在「设置 → 桌面信息岛」打开主开关后,屏幕顶部居中显示常驻胶囊;它不占任务栏槽位,也不依赖引擎的槽位预留协议。

胶囊与面板是同一张卡

  • 紧凑态显示时间 / 星期 / 日期、性能指标与未读角标;播放媒体且没有提醒、没有活跃卡片时显示曲名。
  • 点击胶囊或按 Alt + I 展开。胶囊那一行就是面板的标题栏,展开后点它不会收起。
  • 收起用右上角 ✕ 或 Esc;窗口尺寸随同一段缓动一起变化。

六个页签

页签内容
任务待办、到点提醒、自动结转与 Markdown 归档
剪贴板图文历史、搜索、收藏、备注、回写、存入收纳盒
消息渠道接入状态 + 统一收件箱;全部已读 / 清空
性能CPU / 内存 / 网络 / 磁盘采样;桌面待整理与收纳库计数
动态脚本推送的卡片(本地推送 API)
搜索≥2 字符同时匹配开始菜单应用与文件名

提醒:重复与间隔是两个维度

重复决定哪几天存在(不重复 / 每天 / 工作日 / 每周),间隔决定一天里提醒几次(单次 / 15 分 / 30 分 / 1 时 / 2 时)。时间框接受 09:00 或 09:00-18:00;写了区间就表示起止。

喝水 工作日 09:00-18:00 每30分
这是一条记录,一天 19 次提醒;睡过去的时段只补一次,不会醒来刷屏。

到点时铃铛摆动、标题轻摆、accent 底色脉冲,配一声双句提示音,持续 12 秒,不自动弹出面板。全屏时可以暂缓,退出全屏后按过期规则补发。

通知渠道

渠道接入方式说明
微信 / 企业微信任务栏关注信号(SHELLHOOK)不读聊天正文
QQWinRT 通知监听,按 AUMID 过滤只读通知
邮箱IMAP只同步未读邮件头
系统通知WinRT 通知中心默认关闭;开启后全部应用 Toast 汇总,只读不落盘

出站只有两条:企业微信群机器人 webhook 与 SMTP。QQ / 微信个人号没有官方出站接口,因此不支持发送。

剪贴板、媒体与收纳联动

  • 剪贴板保存图文历史,可搜索、收藏、加备注、回写剪贴板,或直接「存入收纳盒」。
  • 文件直接拖到胶囊上即收纳,搬运在工作线程进行,不卡窗口。
  • 媒体读取系统媒体会话(GSMTC):封面、标题、艺术家与上一首 / 播放暂停 / 下一首,进度本地插值;没有会话时整行消失。

凭据与隐私

授权码、SMTP 密码、Webhook Key 只存 Windows 凭据管理器(DCX/island/<key>),不写 TOML、不写日志。剪贴板与通知内容全部本地保存。唯一的例外是推送 API 令牌:它需要被脚本一行读到,因此放在 %LOCALAPPDATA%\dcx\island_api_token.txt,只授予「往岛上推卡片」这一项能力。

07快捷键#

快捷键动作前提
Alt + D打开 / 收起桌面收纳盒宿主运行
Alt + S打开文件检索宿主运行
Alt + I展开 / 收起桌面信息岛信息岛主开关已开启

三个热键都由常驻的宿主监听,可以在设置中心修改或关闭。文件检索不依赖检索进程是否已启动;信息岛额外要求 island.toml 与 apps.toml 都为开启,避免一个已关闭的应用被键盘复活。

热键被其他程序占用时,注册会失败并写 box_hotkey_error.txt / search_hotkey_error.txt / island_hotkey_error.txt,设置页对应位置会提示改键。前台是管理员权限窗口或全屏独占应用时,热键可能不到达;宿主未运行时热键无效。

08配置文件#

运行时文件全部在 %LOCALAPPDATA%\dcx\。仓库里没有这些文件,只有源码与生成脚本。

文件所有者内容
settings.toml宿主 / 引擎形状、缩放、间距、高度、悬停效果
organizer.toml宿主 / 收纳盒分类、手动分类、收纳库路径、视图偏好
search.toml宿主 / 检索热键、检索范围、排除规则、内容检索策略
island.toml宿主 / 信息岛启停、时钟 / 性能、任务、剪贴板、渠道与出站
apps.toml宿主各独立应用的启停状态
island_tasks.json / island_clipboard.json信息岛任务与剪贴板历史(本地,不上传)
island_api_token.txt信息岛推送 API 的 Bearer 令牌

示例:settings.toml

# %LOCALAPPDATA%\dcx\settings.toml
taskbar_shape = "Capsule"      # Capsule | Card
icon_scale = 100             # 50..125(百分比)
icon_spacing = { between = 0 } # -6..6 px
hover_effect = "Dock"        # Background | Dock
taskbar_height = 40          # 30..44 DIP
ui_theme = "Light"          # 只影响设置窗口本身

写入协议

五个 TOML 与两个 JSON 都是多进程读写,因此写入遵循同一套规则(实现见 dcx-win32/src/config_file.rs):

  • 跨进程互斥:按文件全路径派生的命名互斥体保护整个「读—改—写」,宿主、收纳盒、检索、信息岛不会互相覆盖。
  • 原子替换:先写带 PID 与序号的临时文件并落盘,再用 ReplaceFileW / MoveFileExW 换入;没有「rename 失败就直接覆盖」的回退分支。
  • 损坏即只读:文件存在但解析失败时,进程只使用内存默认值,并拒绝把默认值写回磁盘;修好或删除该文件后自动恢复可写。

手工改配置前先退出对应应用。互斥体只保护程序自己的「读—改—写」,你在外部改完又没有刷新,下一次保存会把内存里的旧视图写回去。

09故障排查#

现象原因处理
设置改了,任务栏没变引擎未注入看状态行;点「重新应用」;确认 wh_injector.exe 与 DLL 同目录
所有应用都显示「已停止」分发包缺 exe 或不在同目录把四个 exe 放回宿主同目录
热键没反应被占用 / 宿主未运行 / 前台是管理员窗口设置页改键;确认托盘图标存在;换普通窗口再试
任务栏样式错乱或消失Windows 版本变化、引擎异常托盘「退出并恢复任务栏」,让 Explorer 重启
强杀宿主后仍有应用进程stop-dcx.bat 未覆盖该应用用 stop-dcx-all.bat,或手动结束三个独立 exe
信息岛按 Alt+I 不出来主开关关闭,或两个 TOML 状态不一致在设置页重新打开主开关(同时写两个文件)
检索没有结果索引还在建立,或排除规则命中看状态栏索引计数;检查 search.toml 的 scope.exclude

日志

文件来源
search_trace.log / search_panic.log文件检索的诊断与 panic
island.log(256 KB 轮转)/ island_panic.log信息岛诊断与 panic
*_hotkey_error.txt热键注册失败原因

升级引擎

dcx_engine.dll 被 Explorer 映射时不能直接覆盖。请用发布包内的 update-engine.bat:它先移动旧文件再复制新文件。替换后可以确认产物确实带槽位协议:

grep -a "box_slot.txt" "D:/dcx-dist/dcx_engine.dll"

然后重算 SHA256SUMS.txt。注意该文件要用 LF 行尾,写成 CRLF 会让 sha256sum -c 把 \r 当成文件名的一部分。

不要对 dcx_engine.dll 调用 FreeLibrary。XAML 持有注入期间注册的对象与 8192 条元素句柄,卸载镜像会让 Explorer 跳进已释放的代码页(0xc000027b)。唯一受支持的卸载方式是结束并重启 Explorer。

10卸载与恢复#

  1. 恢复任务栏:托盘右键 →「退出并恢复任务栏」,或在设置 → 关于里点两次确认。它会暂停看门狗、结束 Explorer、等 shell 自启后退出宿主。
  2. 关闭开机自启:如果开过「开机自启」,先在设置里关掉,或删除注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 下的 DCX 值。
  3. 删除程序目录:直接删掉解压出来的 DCX 文件夹。没有安装器,也没有卸载项。
  4. 清理本地数据(可选):删除 %LOCALAPPDATA%\dcx\ 会同时删除设置、任务、剪贴板历史与检索索引。
  5. 处理收纳库:文档\dcx收纳 是你自己的文件,删不删由你决定;删除不可恢复。

只删程序目录而不执行「恢复任务栏」,已注入的引擎会继续留在 Explorer 里,直到下次重启。任务栏外观不会自己变回去。