Files
Serendipity a769a6b9b3 refactor: 重构项目为 MVC 架构并移除全局变量
- 将原有扁平目录结构重构为 MVC 分层架构:
  * src/core/: 核心业务逻辑(Model),完全独立于 UI 框架
  * src/ui/: 界面组件构建(View),负责纯视觉展示
  * src/controller/: 用户交互处理(Controller),连接数据与界面
  * src/utils/: 底层工具函数,专注于系统调用和字符串处理
- 引入 AppContext 结构体统一管理应用状态,替代原有的全局变量模式
- 重命名并重新组织头文件,按功能模块划分到对应子目录
- 更新 CMakeLists.txt 以适配新的目录结构
- 同步更新 README.md 文档,说明新的架构设计
2026-03-19 20:58:41 +08:00

127 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Path Editor (系统环境变量编辑器)
* Path Editor 是一个专为 Windows 用户设计的系统环境变量(PATH)管理工具。它基于原生 C 语言和 IUP 图形库开发,旨在替代 Windows 自带的简陋编辑界面。
* 相比系统自带的编辑器,Path Editor 提供了更加直观的双视图(系统/用户变量)界面、智能的路径有效性检测、自动备份机制以及便捷的拖拽操作,让环境变量的管理变得安全、高效且轻松。无论您是开发者还是系统管理员,它都是您配置开发环境的得力助手。
## ✨ 功能特点
* **🛡️ 安全第一**
* **自动备份**:每次保存前自动备份注册表,防止意外。
* **只读模式**:非管理员运行时自动切换到只读模式,防止误操作。
* **权限检测**:智能检测当前运行权限。
* **📑 双视图管理**
* 完美支持 **System (系统变量)****User (用户变量)** 的分离查看与编辑。
* 清晰的 Tab 标签页切换。
* **🔴 智能诊断与维护**
* **无效路径高亮**:自动检测路径是否存在,不存在的显示为红色。
* **重复路径高亮**:自动检测重复项,重复的显示为橙色。
* **一键清理**:智能移除所有无效和重复的路径,保持环境整洁。
* **📂 高效交互**
* **拖拽支持**:直接将文件夹拖入窗口即可添加(支持管理员模式下的 UIPI 穿透)。
* **实时搜索**:顶部搜索框支持不区分大小写的实时过滤查找。
* **快捷键**:支持 Delete 键快速删除选中项。
* **便捷管理**
* **新建**:添加新路径到列表。
* 📂 **浏览**:直接从文件资源管理器选择目录添加。
* ✏️ **编辑**:双击或点击按钮修改现有路径。
* 🗑️ **删除**:移除不需要的路径。
* ⬆️⬇️ **排序**:上移/下移调整路径优先级。
* **轻量级**:原生 C 语言编写,无臃肿依赖,运行速度极快。
## 🏗️ 架构与二次开发
本项目注重代码的模块化和可维护性,采用了经典的 **MVC 分层架构**,非常适合作为 C 语言桌面程序开发的参考:
* **分层设计**
* `src/core/` (Model): 核心数据与业务逻辑,完全脱离 UI 框架(无任何 `<iup.h>` 依赖)。
* `src/ui/` (View): 负责界面布局与组件的纯视觉展示。
* `src/controller/` (Controller): 负责连接用户交互与底层数据。
* `src/utils/` (Utils): 纯粹的底层工具类封装(系统级调用、字符串处理)。
* **统一配置中心**:所有的 UI 尺寸、间距、颜色等常量配置均提取在 `include/config.h` 中,只需修改宏定义即可轻松定制属于你的专属界面风格。
* **清晰的应用状态**:摒弃了脆弱的全局变量模式,采用 `AppContext` 统一管理应用运行时的上下文状态,通过指针传递,安全可靠。
## 📦 下载与安装
您可以从 [Releases](https://github.com/LHY0125/PathEditor/releases) 页面下载最新的安装包 (`PathEditorSetup.exe`)。
安装完成后,请**以管理员身份运行**程序以确保能够保存对系统环境变量的修改。
## 🛠️ 构建指南
如果您想从源码构建本项目,请按照以下步骤操作:
### 环境要求
* Windows 操作系统
* GCC 编译器 (推荐 MinGW-w64)
* CMake 工具 (推荐使用 CMake 构建)
* IUP 库 (已包含在 `libs` 目录下)
* Inno Setup 6 (仅打包需要)
### 编译步骤 (推荐使用 CMake)
本项目已迁移至 CMake 构建系统,支持生成更标准的构建文件并集成到各大 IDE。
1. 克隆仓库:
```bash
git clone https://github.com/LHY0125/PathEditor.git
cd PathEditor
```
2. 使用 CMake 配置和编译:
```bash
# 生成构建系统 (以 MinGW 为例)
cmake -B build -G "MinGW Makefiles"
# 编译项目
cmake --build build
```
3. 运行:
编译成功后,可执行文件位于 `build/PathEditor.exe`。
### 打包 (可选)
本项目使用 Inno Setup 生成安装包。
1. 确保已安装 [Inno Setup 6](https://jrsoftware.org/isdl.php)。
2. 运行根目录下的 `build_installer.bat` 脚本。
3. 生成的安装包将位于 `dist/dist/PathEditorSetup.exe`。
## 📝 使用说明
1. **启动**:右键点击程序图标,选择“以管理员身份运行”。
2. **查看**:程序启动后会自动加载当前的系统 PATH 变量。
* **红色**条目表示路径不存在。
* **橙色**条目表示路径重复。
3. **搜索**:在顶部输入关键词可快速筛选。
4. **修改**
* 拖拽文件夹到列表可直接添加。
* 使用右侧按钮栏进行常规操作。
* 点击“一键清理”可自动删除无效和重复项。
5. **保存**:操作完成后,务必点击底部的【确定】按钮保存更改。
6. **生效**:保存后,某些正在运行的程序可能需要重启才能识别新的环境变量。CMD 或 PowerShell 窗口需要重新打开。
## 👤 作者信息
* **作者**LHY
* **邮箱**<3364451258@qq.com>
* **GitHub**[https://github.com/LHY0125/PathEditor](https://github.com/LHY0125/PathEditor)
如果您觉得这个工具对您有帮助,请给我的 GitHub 仓库点个 Star ⭐️
## 📄 许可证
本项目基于 MIT 许可证开源,您可以在遵守许可证条款的前提下自由使用、修改和分发本项目的代码。
详细信息请参阅 [LICENSE](LICENSE) 文件。
Copyright © 2026 LHY. All Rights Reserved.