深色模式
文件解锁
当你删除、移动或重命名一个文件时,Windows 弹出「操作无法完成,因为文件已在另一个程序中打开」——这是最常见、也最恼人的系统摩擦之一。AgileMedic 的文件解锁面板基于 Windows Restart Manager 把「谁占用了它」查清楚,并给出三档由温和到强硬的处理方式,让你自己决定怎么松开这把锁。
工作原理:Restart Manager
Restart Manager(RM)是 Windows 为「软件更新时不必强制重启」而设计的系统组件,AgileMedic 直接复用它来定位文件占用:
RmStartSession— 开启一个 RM 会话(面板打开时状态栏会显示 ● Restart Manager 会话已开启)。RmRegisterResources— 把你拖入的文件 / 文件夹路径注册进会话。RmGetList— 让系统回答「哪些进程正持有这些资源」,返回进程列表。
相比某些工具靠遍历所有进程句柄去「暴力猜」,Restart Manager 是微软官方接口,结果准确、不需要加载内核驱动,也不会触碰其它无关进程。
为什么这样选
Restart Manager 的另一个好处是它知道如何优雅地请进程退出(发送会话结束消息,让程序有机会保存后再关闭),这正是下面「温和档」能保住数据的原因。
拖入或选择文件
面板顶部是一块虚线拖放区(DropZone),三种方式都能把目标交给它:
| 操作 | 行为 |
|---|---|
| 拖入 | 从资源管理器把文件 / 文件夹拖到拖放区,松手即查询 |
| 左键点击 | 弹出文件选择对话框,可多选文件 |
| 右键点击 | 弹出文件夹选择对话框(解锁整个目录时用) |
- 支持批量,一次可拖入多个目标;超过上限会自动截断并在日志里提示「文件过多」。
- 已选中的每个目标会在拖放区下方以 chip(小胶囊) 形式列出,带文件 / 文件夹图标和名称,点 chip 上的
×可单独移除某个路径,移除后会自动对剩余路径重新查询。
占用进程列表
查询完成后,中部表格列出所有正在占用目标的进程。表头统计会实时更新,例如「占用进程 · 3 个 · 已选 2 个」。每行展示:
| 列 | 内容 | 说明 |
|---|---|---|
| 复选框 | 是否纳入操作 | 查询后默认全选;只有勾选的进程才会被「关闭句柄」「结束进程」处理 |
| PID | 进程 ID | 来自 Restart Manager 返回的进程标识 |
| 进程 | 应用显示名 | RM 提供的友好名;若是服务会附带服务短名 |
| 可执行文件 | exe 完整路径 | 需要权限才能读取,取不到时显示 —(悬停提示「路径不可访问,可能需要管理员权限」) |
| 权限 | 是否需要管理员 | 标 需管理员 表示结束该进程需提权;普通进程显示 ● |
表头右侧的 全选 / 取消 链接可一键切换全部勾选状态。
空结果也是好结果
如果查询后列表为空,说明当前没有任何进程占用这些文件——此时通常可以直接在资源管理器里删除 / 移动,无需再做任何操作。
三档操作详解
面板底部从左到右排列三个处理按钮,风险依次升高。只有勾选了进程(或选中了路径)后对应按钮才会启用。
一档 · 关闭句柄(友好)
按钮文案:关闭句柄(友好)
调用 Restart Manager 的 RmShutdown,向占用进程发送「请保存并退出」的请求。支持优雅退出的程序(编辑器、IDE、Office 等)会先保存状态再关闭,数据不易丢失。
- 何时用:首选。绝大多数「文件被占用」都能靠这一档解决。
- 风险:低。这是唯一不弹二次确认的档位,因为行为相对安全。
- 注意:若目标进程完全不响应退出请求,RM 内部会退化为强制终止(
RmForceShutdown),这属于系统兜底行为。
二档 · 结束进程(强制)
按钮文案:结束进程(强制)
对勾选的每个 PID 直接执行 OpenProcess + TerminateProcess,立即杀掉占用进程,绕过 Restart Manager 的优雅流程。
- 何时用:温和档无效,或进程已卡死无法响应时。
- 风险:中高。进程中未保存的数据会丢失。
- 二次确认:会弹出警告对话框,明确提示「将立即终止 N 个进程,未保存的数据将丢失」,默认焦点在取消上,需你主动点「是」才执行。
权限不足怎么办
若目标是受保护进程或系统服务,OpenProcess 会因权限不足失败。AgileMedic 不会静默提权,而是提示你「以管理员身份重启 AgileMedic 后重试」。列表里标了 需管理员 的行就是这种情况。
三档 · 重启后删除
按钮文案:重启后删除
调用 MoveFileEx 并带上 MOVEFILE_DELAY_UNTIL_REBOOT 标志,把删除动作排到下次开机——那时文件还没被任何进程锁定,系统会在加载前把它删掉。
- 何时用:系统级顽固占用(比如被系统进程、驱动持有),前两档都拿不下时的兜底。
- 风险:高。这是路径维度的操作(不依赖进程勾选,有路径即可执行),且不可撤销。
- 权限:需要管理员权限。若当前非管理员会失败,需以管理员身份重启后重试。
- 二次确认:会弹出对话框提示「将在系统下次重启时删除 N 个文件,操作不可撤销」,需主动确认。
该用哪一档?
文件被占用
│
├─ 先试 ①关闭句柄(友好) ──► 成功? 完成,数据安全
│ └─ 失败/无效 ▼
│
├─ ②结束进程(强制) ──► 确认数据可弃 ──► 杀掉占用进程
│ └─ 权限不足 ──► 管理员身份重启后重试
│
└─ 系统进程/驱动死死占住
└─ ③重启后删除 ──► 管理员确认 ──► 下次开机自动删除右键 AI 解释进程
面对一个陌生进程名,「它是什么?能不能安全结束?」往往没把握。选中进程后可请 AI 结合进程名、路径、权限状态给出人话解释,帮你判断结束它会不会误伤正常功能。
AI 是可选的
文件解锁的查询与三档操作完全不依赖 AI,纯 Win32 本地完成。AI 解释只是辅助判断的加分项,需先在 AI 设置 里配置模型。未配置时其余功能照常可用。
辅助操作与操作日志
除三档主操作外,面板还提供几个便捷动作(选中路径 / 有日志后启用):
- 打开目标位置 — 在资源管理器中打开首个已选目标所在目录。
- 复制目标路径 — 把当前拖入的所有文件 / 文件夹完整路径复制到剪贴板。
- 复制解锁报告 — 生成一份纯文本报告,含目标路径、占用进程(PID / 名称 / 权限 / 路径)、勾选状态与操作日志,方便发给同事或贴给 AI 排查。
面板底部的操作日志区按时间顺序记录每一步动作,并按级别用三档颜色区分:
| 级别 | 颜色 | 含义 |
|---|---|---|
INFO | 蓝 | 正常流程(查询、移除路径、用户取消等) |
WARN | 橙 | 需留意(文件过多被截断、路径不可访问等) |
ERROR | 红 | 操作失败(查询失败、权限不足等) |
- 「清空日志」只清当前界面显示,不影响磁盘留存。
- 除界面日志外,操作记录还会持久化写入
%APPDATA%\AgileMedic\logs\operations.log,可长期追溯。
常见问题
查询失败 / 弹出「无法查询占用进程」? 多为 Restart Manager 会话异常或路径本身不可访问。检查路径是否存在、是否有读取权限;必要时以管理员身份重启 AgileMedic。
结束进程按钮点了没反应? 该按钮仅在至少勾选一个进程时启用。若整列都取消了勾选,按钮会自动置灰。
关于权限的红线 AgileMedic 坚持按需提权:查询占用、温和关闭这类操作普通权限即可;只有强制结束受保护进程、重启后删除才需要管理员,且需要时会明确提示,不会偷偷提权。相关背景见 常见问题。
相关阅读:实时监控 · 进程 / 启动项 / 服务管理 · AI 诊断
