目录
作为一名嵌入式工程师,电脑对我来说不是单纯的办公设备,更像一张实验台。
Keil、VS Code、串口工具、逻辑分析仪软件、CAN 工具、JLink、Python 脚本、芯片 SDK、资料文档,一天里这些东西会反复打开。开发机一旦变慢,影响的不是"体验",而是调试节奏。
以前我也用过 360 这类工具。它们确实能做 C 盘清理、启动项管理和安全检查,但对我的开发机来说,问题也明显:安装后占内存,功能太多,广告和推荐不少,有些动作还依赖网络,偶尔还会带一些我并不需要的东西。
我真正需要的功能其实很少。
- 清理磁盘,尤其是 C 盘。
- 管理开机启动项。
- 做一些基础安全检查。
- 不安装驱动。
- 不常驻后台。
- 不依赖网络。
- 不加广告。
- 不做全家桶。
市面上一些 C 盘清理工具还要收费。想了想,这件事不复杂,至少我需要的那一部分不复杂。于是我自己写了一个 Windows 平台的小工具,叫 Windows Care Lite。
它不是安全软件,也不是系统管家。它只做三件事:磁盘清理、开机启动项管理、安全管理。
资源下载链接:https://download.csdn.net/download/m0_38106923/92960183
1、先把边界定死
这个工具最重要的设计,不是功能,而是边界。
我不想写一个新的"管家软件"。如果一个维护工具自己要安装服务、常驻后台、联网推荐、弹窗提醒,那它就开始变成我原本想避开的东西。
所以 Windows Care Lite 的边界很清楚。
| 设计项 | 选择 |
|---|---|
| 运行方式 | 双击 bat 启动 PowerShell 脚本 |
| 界面 | Windows 自带 WinForms |
| 权限 | 需要时请求管理员权限 |
| 安装 | 不安装 |
| 驱动 | 不安装 |
| 后台 | 不常驻 |
| 网络 | 不依赖 |
| 杀毒能力 | 调用系统自带 Defender 或 MSE |
整体结构很简单。

我选择 PowerShell + WinForms,是因为它足够轻。Windows 本身就带这些能力,不需要额外运行时,也不需要写安装包。对一个工具来说,少一层依赖,就少一层风险。
这点和嵌入式开发很像:能不用外设就不用,能少一个任务就少一个任务,能不进中断就不进中断。
2、磁盘清理不能只追求删得多
清理工具最容易诱导用户的地方,是显示一个很大的可清理空间。
但 C 盘不是垃圾桶。很多目录看起来能删,实际有风险。比如 Windows.old 能释放很多空间,但删掉后就失去了系统回滚能力;Windows Update 缓存可以清,但更新过程中清理可能出问题;下载目录里的安装包、压缩包,也可能是项目资料或客户交付文件。

所以我把清理项做成带风险属性的对象,而不是简单路径列表。

每个清理目标都至少包含这些信息。
| 字段 | 作用 |
|---|---|
| 清理级别 | 安全、标准、深度 |
| 风险等级 | 低、中、高 |
| 路径 | 让用户知道删哪里 |
| 文件数量 | 估算影响范围 |
| 预计空间 | 估算收益 |
| 管理员权限 | 提前提示权限要求 |
| 默认勾选 | 高风险项默认不勾选 |
| 说明 | 告诉用户后果 |
我把清理分成三档。
| 级别 | 内容 | 策略 |
|---|---|---|
| 安全 | 用户临时文件、缩略图缓存、7 天以上 Windows Temp | 默认可选 |
| 标准 | 回收站、浏览器缓存、更新下载缓存、错误报告、显卡缓存 | 用户确认 |
| 深度 | Windows.old、DISM、旧安装包、重复文件、大文件、CompactOS | 默认不勾选或只复查 |
深度清理里,我刻意把很多项目做成"候选",不是"自动删除"。
比如旧安装包、旧压缩包、未完成下载、大文件、重复文件。这些东西在普通电脑上可能是垃圾,在工程师电脑上可能是固件包、SDK、历史版本、客户资料。
非系统盘也一样。我没有按扩展名全盘删除用户文件,只处理明确识别出的缓存目录、临时目录、回收站、旧系统目录和人工复查候选。
这是一条很重要的原则:宁愿少清一点,也不要替用户误删。
3、启动项管理要全面,但动作要保守
很多人以为开机启动项就是注册表 Run。实际上 Windows 的启动入口很多。

这个工具扫描了这些位置。
| 来源 | 说明 | 自动处理策略 |
|---|---|---|
| HKCU/HKLM Run | 常见注册表启动项 | 可禁用和恢复 |
| Startup 文件夹 | 用户和全局启动目录 | 可移动和恢复 |
| 计划任务 | 登录或开机触发 | 可切换启用状态 |
| Active Setup | 用户环境初始化 | 只分析 |
| Winlogon | 登录流程关键位置 | 只分析 |
| 自动服务 | 服务型自启动 | 只分析 |
这里有两个设计点。
第一,扫描要尽量全。
如果只看 Run 注册表,会漏掉很多计划任务、服务项和脚本类启动项。很多软件不一定把自己放在最显眼的位置。
第二,禁用要保守。
系统、驱动、安全、硬件相关组件默认建议保留;更新器、托盘、聊天软件、网盘、启动器这类,给出"可按需关闭";脚本、临时目录、未知来源、系统解释器相关命令,提示"建议检查"。

我不希望工具替用户做决定,所以每个建议都要显示原因。比如它是更新器、托盘程序、脚本项,还是系统组件。
禁用动作也必须可恢复。注册表启动项不是删除,而是移动到备份键;启动文件夹里的文件不是删除,而是移到禁用目录;计划任务只是关闭启用状态。
系统工具最怕"清理得很彻底"。很多时候,可恢复比彻底更重要。
4、安全管理只做系统内置能力能支撑的事
我没有自研杀毒,也没有做云查杀。
个人工具不适合维护病毒库,更不应该随便上传用户文件。安全管理模块只做保守体检,调用 Windows 本身已有的能力。

它主要检查这些项目。
| 类别 | 检查内容 |
|---|---|
| 杀毒防护 | Defender 或 Microsoft Security Essentials 状态 |
| 防火墙 | 域、专用、公用配置文件是否开启 |
| 漏洞补丁 | Windows Update、BITS 服务和待安装更新 |
| 系统加固 | UAC、远程桌面、SMB1、移动介质自动运行 |
安全页的流程是:

防火墙关了,就启用防火墙;Windows Update 服务停了,就启动服务;UAC 关了,就恢复注册表配置;远程桌面不需要,就关闭;SMB1 开着,就提示关闭。
如果是系统更新,工具不会自己下载补丁,而是打开 Windows Update,让系统自己处理。
这不是偷懒,而是边界。能交给系统原生能力处理的,就不要自己写一套更危险的逻辑。
5、细节设计
真正花时间的地方,其实不是界面。
是这些细节。
| 细节 | 目的 |
|---|---|
| 清理前先扫描估算 | 防止直接误删 |
| 高风险项默认不勾选 | 不替用户做危险决定 |
| 相关软件自动关闭 | 清理浏览器缓存、WebCache 等目录时减少占用 |
| 外部命令超时 | 防止 chkdsk、defrag、DISM 卡住 |
| 模块独立 Busy 状态 | 防止重复点击导致状态错乱 |
| UI 日志节流 | 避免日志过长拖慢界面 |
| 异常写入日志 | 方便定位问题 |
| 启动项可恢复 | 降低误操作成本 |
这些设计不显眼,但决定工具能不能长期用。
嵌入式里我们很熟悉这种感觉。一个功能跑起来不难,难的是异常路径、边界条件、恢复流程、超时兜底。写 Windows 小工具也是一样。
我写 Windows Care Lite 的原因很简单。
我想要一个干净的维护工具。开发机慢了,能清理缓存;开机慢了,能看启动项;安全配置异常了,能快速检查。除此之外,它不要常驻,不要广告,不要联网推荐软件,也不要替我做没确认过的决定。
对嵌入式工程师来说,开发机就是实验台。实验台上的工具应该顺手、可靠、可控。
用的时候拿起来,用完放回去。
少做一点,但把真正需要的几件事做稳。
资源下载链接:https://download.csdn.net/download/m0_38106923/92960183