# Path Editor (系统环境变量编辑器)

* Path Editor 是一个专为 Windows 用户设计的系统环境变量（PATH）管理工具。它基于原生 C 语言和 IUP 图形库开发，旨在替代 Windows 自带的简陋编辑界面。
* 相比系统自带的编辑器，Path Editor 提供了更加直观的双视图（系统/用户变量）界面、智能的路径有效性检测、自动备份机制以及便捷的拖拽操作，让环境变量的管理变得安全、高效且轻松。无论您是开发者还是系统管理员，它都是您配置开发环境的得力助手。

## ✨ 功能特点

* **🛡️ 安全第一**：
  * **自动备份**：每次保存前自动备份注册表，防止意外。
  * **只读模式**：非管理员运行时自动切换到只读模式，防止误操作。
  * **权限检测**：智能检测当前运行权限。

* **📑 双视图管理**：
  * 完美支持 **System (系统变量)** 和 **User (用户变量)** 的分离查看与编辑。
  * 清晰的 Tab 标签页切换。

* **🔴 智能诊断与维护**：
  * **无效路径高亮**：自动检测路径是否存在，不存在的显示为红色。
  * **重复路径高亮**：自动检测重复项，重复的显示为橙色。
  * **一键清理**：智能移除所有无效和重复的路径，保持环境整洁。

* **📂 高效交互**：
  * **拖拽支持**：直接将文件夹拖入窗口即可添加（支持管理员模式下的 UIPI 穿透）。
  * **实时搜索**：顶部搜索框支持不区分大小写的实时过滤查找。
  * **快捷键**：支持 Delete 键快速删除选中项。

* **🔄 导入导出**：
  * **导出备份**：将 PATH 导出为 JSON 文件，方便备份和迁移。
  * **导入恢复**：从 JSON 文件导入路径配置。
  * **格式兼容**：支持旧版 TXT 格式导入。

* **便捷管理**：
  * ➕ **新建**：添加新路径到列表。
  * 📂 **浏览**：直接从文件资源管理器选择目录添加。
  * ✏️ **编辑**：双击或点击按钮修改现有路径。
  * 🗑️ **删除**：移除不需要的路径。
  * ⬆️⬇️ **排序**：上移/下移调整路径优先级。

* **轻量级**：原生 C 语言编写，无臃肿依赖，运行速度极快。

## 🛠️ 架构与二次开发

本项目注重代码的模块化和可维护性，采用了经典的 **MVC 分层架构**，非常适合作为 C 语言桌面程序开发的参考：

* **分层设计**：
  * `src/core/` (Model): 核心数据与业务逻辑，完全脱离 UI 框架（无任何 `<iup.h>` 依赖）。
  * `src/ui/` (View): 负责界面布局与组件的纯视觉展示。
  * `src/controller/` (Controller): 负责连接用户交互与底层数据。
  * `src/utils/` (Utils): 纯粹的底层工具类封装（系统级调用、字符串处理）。
* **热配置系统**：所有 UI 参数（窗口大小、按钮文本、布局间距等）均通过 `lua/config.lua` 配置，修改无需重新编译即可生效。
* **清晰的应用状态**：摒弃了脆弱的全局变量模式，采用 `AppContext` 统一管理应用运行时的上下文状态，通过指针传递，安全可靠。
* **开发工具库**：
  * 统一错误码系统 (`utils/error_code.h`)
  * 安全字符串函数 (`utils/safe_string.h`)
  * 日志系统 (`utils/logger.h`)

## 📦 下载与安装

您可以从 [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.
