同UCanCode一起释放 Visual C++, C# 的巨大能量!
UCCSafe 文档

UCCSafe 工业级电脑安全卫士

Windows 工业级安全与系统维护工具 - 基于 Qt 5.15.2 的桌面应用程序

版本 2.5.8 Qt 5.15.2 MinGW 64-bit C++17 Windows 专用 UCanCode

项目名称:UCCSafe(UCCSafe 工业级电脑安全卫士)

开发方:UCanCode(Support@ucancode.net)

项目类型:Windows 桌面 GUI 应用(无边框窗口 + 系统托盘)

构建系统:qmake(UCCSafe.pro

运行版本:AppVersion::number() 返回 2.5.8core/AppVersion.h);UCCSafe.proVERSION = 1.5.7 为 qmake 打包版本号,两者独立维护。

项目简介

UCCSafe 是一款面向 Windows 平台的工业级电脑安全卫士与一体化系统维护平台。它将垃圾清理、内存优化、注册表维护、软件卸载、启动项管理、Windows 服务管理、Defender 状态监控等功能整合在同一套现代化 UI 中,帮助用户以可视化方式完成日常系统维护,无需在多个工具之间切换。

程序采用单实例运行机制(SingleApplication + 本地套接字),支持最小化到系统托盘;关闭主窗口时默认隐藏至托盘而非退出。界面支持浅色/深色主题中/英双语切换。

核心功能

? 系统体检(我的电脑)

采集 CPU、内存、磁盘、启动项、已装程序、Defender 状态等指标,生成 0-100 健康评分与分类修复建议,支持一键修复。

?? 垃圾清理

内置 58 条清理规则(JSON),支持 Winapp2.ini 与自定义 INI 规则;日常/深度/专家三种预设;并行扫描与清理流水线。

? 内存清理

实时内存仪表盘、进程列表、工作集 Trim、Standby List 清理;保守/均衡/激进三种模式。

? 优化加速

29 项注册表优化(ZyperData.xml);启动项管理;开始菜单快捷方式修复/清理。

? 软件卸载

枚举已安装程序,支持标准/强制卸载、批量卸载、残留扫描与清理;安装监控器记录安装痕迹。

? 注册表

快速/深度扫描、结构优化、可修复项扫描、注册表备份/还原、文件关联管理。

?? 安全中心

Windows Defender 运行状态检测,启用/禁用 Defender,跳转 Windows 安全中心。

?? 服务管理

枚举 Windows 服务,启停/暂停/重启,修改启动类型,一键优化可安全禁用的服务。

解决的核心问题

用户痛点UCCSafe 方案
磁盘空间不足、系统变慢垃圾清理引擎 + 内存清理 + 健康评分引导
开机启动项过多StartupManager 枚举注册表 Run 键与启动文件夹,支持禁用/启用/删除
软件无法正常卸载或残留文件/注册表ForceUninstaller 强制卸载 + InstallMonitor 安装追踪 + 残留扫描清理
注册表冗余、无效项、文件关联混乱RegistryScanner 扫描/优化 + FileAssociationManager 关联管理 + 备份还原
开始菜单出现无效/损坏快捷方式StartMenuManager 检测、修复、删除无效 .lnk
不了解系统整体健康状况HealthChecker 多维度评分 + 定时体检(HealthScheduler)
Windows Defender 状态不明DefenderManager 状态检测与快捷操作
后台服务占用资源ServiceManager 可视化管理与安全优化

依赖环境要求

组件要求说明
操作系统Windows 7 SP1 及以上(推荐 Windows 10/11)大量功能依赖 Win32 API(advapi32, ole32, shell32 等)
Qt 框架Qt 5.15.2模块:core, gui, widgets, concurrent, network, svg, xml
编译器MinGW 64-bit(与 Qt 5.15.2 配套)需支持 C++17(CONFIG += c++17
构建工具qmake + make/nmake项目文件:UCCSafe/UCCSafe.pro
系统托盘必须可用启动时检测 QSystemTrayIcon::isSystemTrayAvailable(),不可用则拒绝运行
管理员权限部分功能需要如 Windows 更新缓存清理、部分注册表操作、Standby List 清理等
可选依赖Winapp2.ini扩展清理规则,可放置于 AppData 或程序目录 rules/winapp2.ini

本地编译构建

方式一:Qt Creator(推荐)

  1. 安装 Qt 5.15.2,选择 MinGW 64-bit 组件。
  2. 用 Qt Creator 打开 UCCSafe/UCCSafe.pro
  3. 选择 Kit:Desktop Qt 5.15.2 MinGW 64-bit
  4. 构建配置选择 Debug 或 Release,点击「构建」。
  5. 输出目录示例:build/Desktop_Qt_5_15_2_MinGW_64_bit-Release/release/UCCSafe.exe

方式二:命令行 qmake

# 进入项目目录

cd d:\UCC_QT\UCCSafe\UCCSafe



# 设置 Qt 环境(路径按实际安装调整)

set PATH=C:\Qt\5.15.2\mingw81_64\bin;C:\Qt\Tools\mingw810_64\bin;%PATH%



# 创建构建目录

mkdir build\release

cd build\release



# 生成 Makefile 并编译

qmake ..\..\UCCSafe.pro -spec win32-g++ "CONFIG+=release"

mingw32-make -j4



# 编译翻译文件(pro 中 CONFIG += lrelease 会自动处理)

# 生成 uccsafe_en.qm 并复制到 translations/ 目录
翻译文件:UCCSafe.pro 配置了 TRANSLATIONS += translations/uccsafe_en.tsCONFIG += lrelease,构建时自动生成 uccsafe_en.qm 并嵌入资源(resources/app.qrc)。

部署与安装

收集 Qt 运行时依赖

# 在 exe 所在目录执行 windeployqt

windeployqt UCCSafe.exe --no-translator --no-system-d3d-compiler



# 如需 SVG 图标支持(项目已使用 Qt SVG 模块)

# windeployqt 通常会自动复制 Qt5Svg.dll

发布目录建议结构

UCCSafe/

├── UCCSafe.exe

├── Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll, ...

├── platforms/qwindows.dll

├── styles/qwindowsvistastyle.dll

├── imageformats/qsvg.dll, qico.dll, ...

├── iconengines/qsvgicon.dll

├── translations/uccsafe_en.qm   (可选,已内嵌资源)

└── rules/

    └── winapp2.ini              (可选扩展规则)

首次运行自动创建的数据目录

路径用途
%APPDATA%/UCCSafe/UCCSafe/QSettings 配置(主题、语言、历史记录等)
%APPDATA%/UCCSafe/UCCSafe/clean/custom/自定义清理规则目录(首次复制 sample_custom.ini)
%APPDATA%/UCCSafe/UCCSafe/clean/winapp2.ini用户 Winapp2 规则(可选)
InstallMonitor 存储目录安装监控记录(InstallMonitorStore::storageDir())
RegistryBackup 备份目录注册表 .reg 备份文件

命令行模式

除 GUI 外,main.cpp 支持无界面强制卸载模式:

UCCSafe.exe --force-uninstall "程序名称关键字" [--full-disk-scan]



# 示例

UCCSafe.exe --force-uninstall "SomeApp"

UCCSafe.exe --force-uninstall "C:\Program Files\SomeApp" --full-disk-scan



# 退出码

# 0 = 成功

# 1 = 卸载失败

# 2 = 未找到目标程序

# 3 = 无法创建日志文件



# 日志输出:%TEMP%/uccsafe_force_uninstall.log

快速上手

  1. 启动程序 - 双击 UCCSafe.exe;若已在运行,会提示「UCCSafe 已经在运行中」。
  2. 系统体检 - 默认进入「我的电脑」页,点击「立即体检」获取健康评分。
  3. 一键修复 - 体检完成后点击「一键修复」,自动依次执行垃圾清理与基础优化。
  4. 导航切换 - 顶部导航栏切换各功能模块;点击「退出」隐藏至系统托盘。
  5. 托盘操作 - 右键托盘图标:显示主窗口 / 立即体检 / 退出。
权限提示:建议以管理员身份运行以获得完整功能。部分清理项(如 Windows 更新缓存)和注册表 HKLM 操作需要提升权限;程序会通过 CleanSafety::isRunningAsAdmin() 检测并提示。

页面索引对照表

索引导航名称类名
0我的电脑HomePage
1垃圾清理CleanPage
2内存清理MemoryCleanPage
3优化加速OptimizePage(含 StartupPage、StartMenuPage 子页)
4软件卸载UninstallPage
5注册表RegistryCleanPage
6Appx(已隐藏)AppxPage - 代码存在但导航栏已注释
7安全中心DefenderPage
8服务管理ServicePage
9设置SettingsPage

我的电脑(HomePage)

核心类:HomePage + HealthChecker + SystemInfo

评分规则摘要(HealthChecker)

指标扣分条件最大扣分
磁盘剩余<10% / <20% / <35%25 / 15 / 8
内存占用>90% / >80%20 / 10
启动项数量>25 / >15 / >820 / 12 / 5
已装程序>1505
Defender未启用/未运行 / 安全中心服务未运行15 / 5

垃圾清理(CleanPage)

核心类:CleanEngine + CleanPipelineWorker + CleanRuleLoader

操作流程

  1. 选择预设:日常(Daily)/ 深度(Deep)/ 专家(Expert)。
  2. 可选来源筛选:内置 / Winapp2 / 自定义。
  3. 点击扫描:并行扫描选中规则,显示每项占用大小。
  4. 确认选中项后点击清理CleanSafety 检查浏览器进程和管理员权限后执行。
  5. 查看清理历史:记录时间、成功数、释放字节数(最多 20 条)。

规则来源

来源说明配置
内置(Builtin)resources/clean/builtin_rules.json,58 条规则嵌入 QRC 资源
Winapp2社区 Winapp2.ini 格式,经 Winapp2Parser + Winapp2Converter 转换Settings 或 CleanRulesDialog 配置路径
自定义(Custom)用户 INI 规则%AppData%/UCCSafe/UCCSafe/clean/custom/

风险等级

内存清理(MemoryCleanPage)

核心类:MemoryCleanerEngine

优化加速(OptimizePage)

核心类:OptimizeEngine + StartupPage + StartMenuPage

Tab 1:系统优化

Tab 2:启动项管理(StartupPage)

Tab 3:开始菜单(StartMenuPage)

软件卸载(UninstallPage)

核心类:ForceUninstaller + InstallMonitor + WindowsRegistry

标准卸载

调用程序的 UninstallString / QuietUninstallString(ProcessExecutor),等待完成。

强制卸载流程(ForceUninstaller)

  1. 终止相关进程(killRelatedProcesses)
  2. 停止相关服务
  3. 禁用相关启动项
  4. 运行官方卸载程序(如有)
  5. 删除安装目录
  6. 清理注册表项(Uninstall 键及相关)
  7. 扫描并清理残留(目录、注册表、服务、计划任务、浏览器扩展、开始菜单快捷方式)
  8. 可选:卸载前备份注册表(RegistryBackup)

安装监控器(InstallMonitor)

残留清理对话框(ResidualCleanDialog)

扫描完成后展示 ResidualItem 列表,用户选择性清理;支持注册表备份。

注册表(RegistryCleanPage)

核心类:RegistryScanner + RegistryBackup + FileAssociationManager + RegistryOperationWorker

功能 Tab

Tab功能
扫描清理快速/深度扫描无效卸载项、空 Run 键、无效 App Paths 等;选中后清理
备份还原全量/核心注册表导出 .reg;创建系统还原点;从备份还原
结构优化分析注册表占用(RegistryFootprintInfo);删除空键(RegistryOptimizeResult)
修复扫描扫描可修复项(scanRepairableIssues)并批量修复
文件关联查询/清除/设置用户级文件扩展名关联(FileAssociationManager)
安全机制:RegistryScanner::isKeySafeToModify()isItemSafeToClean() 保护系统关键键;清理前建议备份。

安全中心(DefenderPage)

核心类:DefenderManager

服务管理(ServicePage)

核心类:ServiceManager

设置(SettingsPage)

分组选项
常规开机自启(AutoStartManager)、关闭时最小化到托盘
外观浅色/深色主题(ThemeManager)、中文/English(TranslationManager)
体检定时自动体检开关、间隔(小时)
历史清理/注册表/卸载历史查看与清除
备份注册表备份文件列表
FAQ常见问题解答(QToolBox)
关于版本号、描述、官网链接、许可信息

代码目录结构

UCCSafe/

├── UCCSafe.pro              # qmake 项目文件

├── main.cpp                 # 入口:单实例、CLI 卸载、主窗口

├── mainwindow.h/.cpp        # 主窗口:导航、托盘、主题、FixAll 编排

│

├── core/                    # 核心业务逻辑(40+ 模块)

│   ├── AppSettings.*        # 全局设置单例(QSettings 持久化)

│   ├── AppVersion.h         # 版本号 2.5.8

│   ├── SingleApplication.*  # 单实例应用

│   ├── ThemeManager.*       # 主题/QSS/图标

│   ├── TranslationManager.* # 多语言

│   ├── I18n.* / i18n_catalog.*  # 翻译辅助

│   │

│   ├── SystemInfo.*         # 系统指标采集

│   ├── HealthChecker.*      # 健康评分

│   ├── HealthScheduler.*    # 定时体检

│   │

│   ├── CleanEngine.*        # 清理引擎门面

│   ├── CleanRuleLoader.*    # 规则加载(JSON/INI/Winapp2)

│   ├── CleanPipelineWorker.*# 并行清理流水线

│   ├── CleanSafety.*        # 清理安全检查

│   ├── CleanDetection.*     # 软件安装检测

│   ├── CleanPathExpander.*  # 路径变量展开

│   ├── CleanCategoryResolver.*

│   ├── CleanRulesPaths.*    # 规则文件路径

│   ├── Winapp2Parser.*      # Winapp2.ini 解析

│   ├── Winapp2Converter.*   # Winapp2 -> CleanItemDef 转换

│   │

│   ├── MemoryCleanerEngine.*# 内存清理引擎

│   ├── OptimizeEngine.*     # 优化引擎(读 ZyperData.xml)

│   │

│   ├── WindowsRegistry.*    # 注册表读写封装

│   ├── RegistryScanner.*    # 注册表扫描/优化/修复

│   ├── RegistryBackup.*     # 注册表备份/还原/还原点

│   ├── RegistryOperationWorker.*  # 注册表操作后台线程

│   ├── RegistryCategories.h

│   │

│   ├── ForceUninstaller.*   # 强制卸载

│   ├── InstallMonitor.*     # 安装监控

│   ├── StartupManager.*     # 启动项管理

│   ├── StartMenuManager.*   # 开始菜单快捷方式

│   ├── ServiceManager.*     # Windows 服务

│   ├── DefenderManager.*    # Windows Defender

│   ├── FileAssociationManager.*  # 文件关联

│   ├── AppxManager.*        # UWP/Appx 包管理

│   │

│   ├── ProcessExecutor.*    # 外部进程执行

│   ├── AutoStartManager.*   # 开机自启注册表

│   ├── SystemUtils.*        # 系统工具函数

│   ├── DirUtils.*           # 目录工具

│   ├── IconProvider.*       # 图标路径常量

│   ├── AppIconResolver.*    # 程序图标解析

│   └── UiConstants.h        # UI 常量(字体、间距)

│

├── pages/                   # 功能页面(15 个页面/对话框)

│   ├── HomePage.*

│   ├── CleanPage.* / CleanRulesDialog.*

│   ├── MemoryCleanPage.*

│   ├── OptimizePage.* / StartupPage.* / StartMenuPage.*

│   ├── UninstallPage.* / ResidualCleanDialog.* / InstallMonitorRecordsDialog.*

│   ├── RegistryCleanPage.*

│   ├── DefenderPage.*

│   ├── ServicePage.*

│   ├── AppxPage.*           # 已实现但导航隐藏

│   └── SettingsPage.*

│

├── widgets/                 # 可复用 UI 组件(14 个)

│   ├── TitleBarWidget.*     # 自定义标题栏

│   ├── NavTabButton.*       # 导航 Tab 按钮

│   ├── ScoreRingWidget.*    # 评分环

│   ├── StatCard.*           # 统计卡片

│   ├── MemoryGaugeWidget.*  # 内存仪表盘

│   ├── MemoryHistoryChart.* # 内存历史图表

│   ├── PageHeader.*         # 页面标题

│   ├── PageScrollArea.*     # 可滚动页面容器

│   ├── FlatSegmentControl.* # 分段选择器

│   ├── LocalizableWidget.*  # 可本地化 Widget 基类

│   ├── ToolbarPanel.*

│   ├── UninstallListWidgets.*

│   ├── StartupListWidgets.*

│   └── WindowReflectionWidget.*

│

├── styles/                  # QSS 样式表

│   ├── app_light.qss / app_dark.qss

│   └── iphone_overrides_light.qss / iphone_overrides_dark.qss

│

├── resources/

│   ├── app.qrc              # Qt 资源文件

│   ├── app.rc               # Windows 图标/版本资源

│   ├── clean/

│   │   ├── builtin_rules.json   # 58 条内置清理规则

│   │   └── sample_custom.ini    # 自定义规则样例

│   └── icons/               # SVG 导航/操作图标

│

├── data/

│   └── ZyperData.xml         # 29 项优化配置

│

├── translations/

│   ├── uccsafe_en.ts        # 英文翻译源

│   └── uccsafe_en.qm        # 编译后翻译文件

│

├── scripts/                 # 开发辅助脚本(Python)

│   ├── generate_i18n_catalog.py

│   ├── complete_en_translations.py

│   └── gen_clean_rules.py

│

├── tools/                   # 独立测试工具

│   ├── test_startmenu.pro/.cpp

│   └── test_clear_assoc.cpp

│

├── docs/                    # 项目文档

│   └── UCCSafe_Documentation.html

│

└── build/                   # 构建输出(Qt Creator 生成)

    └── Desktop_Qt_5_15_2_MinGW_64_bit-Release/

核心模块说明

应用框架层

模块职责
SingleApplicationQLocalServer/Socket 实现单实例;二次启动发送 instanceActivated 信号激活已有窗口
MainWindowQStackedWidget 页面容器;无边框窗口拖拽/缩放;系统托盘;FixAll 编排;会话状态保存/恢复
AppSettings单例模式,QSettings 持久化所有用户偏好与历史记录(JSON 序列化)
ThemeManager加载 QRC 中的 QSS 样式表,切换 Light/Dark 主题,提供统一图标/Pixmap 加载
TranslationManager安装 QTranslator,切换中/英语言

清理子系统

CleanPage (UI) │ ├── CleanEngine (门面 API) │ ├── CleanRuleLoader ──-> builtin_rules.json / Winapp2.ini / custom/*.ini │ ├── CleanPathExpander ──-> 展开 %LocalAppData% 等环境变量 │ ├── CleanDetection ──-> 检测目标软件是否已安装 │ ├── CleanCategoryResolver ──-> 分类本地化 │ └── CleanSafety ──-> 管理员/浏览器进程检查 │ └── CleanPipelineWorker (QThread 后台) ├── 并行 Scan (QtConcurrent) └── 串行 Execute + 进度回调

卸载子系统

UninstallPage (UI) │ ├── WindowsRegistry::enumerateInstalledPrograms() │ ├── ForceUninstaller │ ├── ProcessExecutor (运行卸载程序) │ ├── ServiceManager (停止服务) │ ├── StartupManager (禁用启动项) │ ├── StartMenuManager (清理快捷方式) │ ├── DirUtils (删除目录/安全删除) │ └── RegistryBackup (备份后删除) │ └── InstallMonitor (QObject 单例) ├── 文件系统监控 (轮询) ├── 注册表变更追踪 └── InstallMonitorStore (JSON 持久化)

注册表子系统

RegistryCleanPage (UI) │ ├── RegistryOperationWorker (QThread 后台) │ ├── RegistryScanner::scan(Quick|Deep) │ ├── RegistryScanner::optimizeStructure() │ ├── RegistryScanner::repairItems() │ └── RegistryBackup::export/import │ └── FileAssociationManager ├── 查询 UserChoice / UserClasses / SystemClasses └── 清除/设置用户级关联

关键数据流

FixAll 一键修复流程

HomePage [一键修复] -> MainWindow::onFixAll() -> navigateToPage(1) + CleanPage::startFixAllPipeline() -> CleanPipelineWorker 扫描+清理 fixAllEligibleIds -> emit fixAllPipelineFinished -> MainWindow::onFixAllCleanFinished() -> navigateToPage(3) + OptimizePage::applyBasicOptimizationSilent() -> OptimizeEngine 应用 basicPresetIds -> emit silentOptimizationFinished -> MainWindow::onFixAllOptimizeFinished() -> runHealthCheck() 重新体检

健康检查流程

SystemInfo::collect() -> CPU/内存/磁盘/启动项/程序数/Defender 状态 -> HealthChecker::analyze(metrics) -> HealthReport (score, categories, suggestions) -> HomePage::applyReport() -> ScoreRingWidget + StatCard + 分类列表

数据存储与配置

所有用户配置通过 AppSettings 写入 QSettings,组织名 UCCSafe,应用名 UCCSafe。Windows 下典型路径:

HKEY_CURRENT_USER\Software\UCCSafe\UCCSafe\

主要配置键

说明
theme0=浅色, 1=深色
language0=中文, 1=English
minimizeToTray关闭时最小化到托盘
autoHealthCheck / healthIntervalHours定时体检
lastPageIndex上次打开的页面索引
windowGeometry / windowMaximized窗口位置与最大化状态
clean/history清理历史 JSON 数组
registry/history注册表操作历史
uninstall/history卸载历史
clean/checkedIds上次选中的清理项 ID
clean/winapp2Enabled / clean/winapp2PathWinapp2 规则配置
memory/mode内存清理模式
uninstall/*卸载选项(强制清理残留、追踪模式、备份等)

国际化(i18n)

UI 架构特点

Windows API 依赖

UCCSafe.pro 链接以下系统库:

LIBS += -ladvapi32 -lole32 -lshell32 -luuid -lpsapi
用途
advapi32注册表操作、服务管理、权限调整
ole32COM / Shell Link 解析(.lnk 快捷方式)
shell32Shell 操作、通知变更、文件关联
uuidGUID 相关
psapi进程内存信息(MemoryCleanerEngine)

扩展开发指南

添加新的清理规则

  1. 编辑 resources/clean/builtin_rules.json,按现有格式添加条目。
  2. 或放置 INI 文件到 %AppData%/UCCSafe/UCCSafe/clean/custom/
  3. 或启用 Winapp2.ini 并配置路径(CleanRulesDialog)。
  4. 重新编译(内置规则需重新 qrc)或重启应用(外部规则)。

添加新的优化项

  1. 编辑 data/ZyperData.xml,添加 <Item> 节点。
  2. 指定 preset 属性(basic/deep)。
  3. 重新编译使 QRC 资源更新。

添加新功能页面

  1. pages/ 创建 Page 类(建议继承 LocalizableWidget)。
  2. UCCSafe.pro 的 SOURCES/HEADERS 中注册。
  3. MainWindow::setupUi()m_stack->addWidget() 并添加 NavTabButton。
  4. refreshAllLocalizedPages() 中添加本地化刷新调用。