diff --git a/.gitignore b/.gitignore index 8c7c222..7d97e76 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ /.trae/ /.vscode/ /build/ -*.exe + *.o *.obj *.pdb @@ -17,3 +17,6 @@ Desktop.ini # 忽略dist目录 /dist/ + +# 忽略.ps1文件 +*.ps1 diff --git a/README.md b/README.md index e69de29..48e8c1a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,82 @@ +# Path Editor (系统环境变量编辑器) + +一个简单、轻量级的 Windows 系统环境变量(PATH)编辑器,基于 C 语言和 IUP 图形库开发。 + +## ✨ 功能特点 + +* **可视化编辑**:直观地查看和管理系统 PATH 环境变量。 +* **安全操作**:必须以管理员身份运行才能保存更改,防止误操作。 +* **便捷管理**: + * ➕ **新建**:添加新路径到列表。 + * 📂 **浏览**:直接从文件资源管理器选择目录添加。 + * ✏️ **编辑**:修改现有路径。 + * 🗑️ **删除**:移除不需要的路径。 + * ⬆️⬇️ **排序**:上移/下移调整路径优先级。 +* **轻量级**:原生 C 语言编写,运行速度快,占用资源少。 + +## 📦 下载与安装 + +您可以从 [Releases](https://github.com/LHY0125/PathEditor/releases) 页面下载最新的安装包 (`PathEditorSetup.exe`)。 + +安装完成后,请**以管理员身份运行**程序以确保能够保存对系统环境变量的修改。 + +## 🛠️ 构建指南 + +如果您想从源码构建本项目,请按照以下步骤操作: + +### 环境要求 + +* Windows 操作系统 +* GCC 编译器 (推荐 MinGW-w64) +* Make 工具 +* IUP 库 (已包含在 `libs` 目录下) + +### 编译步骤 + +1. 克隆仓库: + + ```bash + git clone https://github.com/LHY0125/PathEditor.git + cd PathEditor + ``` + +2. 编译项目: + + ```bash + mingw32-make + ``` + +3. 运行: + 编译成功后,可执行文件位于 `bin/PathEditor.exe`。 + +### 打包 (可选) + +本项目使用 Inno Setup 生成安装包。 + +1. 确保已安装 [Inno Setup 6](https://jrsoftware.org/isdl.php)。 +2. 编译项目生成 exe 文件。 +3. 使用 Inno Setup 编译 `dist/installer.iss` 脚本。 + +## 📝 使用说明 + +1. **启动**:右键点击程序图标,选择“以管理员身份运行”。 +2. **查看**:程序启动后会自动加载当前的系统 PATH 变量。 +3. **修改**:使用右侧按钮栏进行添加、删除、移动等操作。 +4. **保存**:操作完成后,务必点击底部的【确定】按钮保存更改。 +5. **生效**:保存后,某些正在运行的程序可能需要重启才能识别新的环境变量。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. diff --git a/bin/PathEditor.exe b/bin/PathEditor.exe new file mode 100644 index 0000000..f371b0b Binary files /dev/null and b/bin/PathEditor.exe differ diff --git a/dist/installer.iss b/dist/installer.iss index 2b022c8..cbb91ab 100644 --- a/dist/installer.iss +++ b/dist/installer.iss @@ -2,8 +2,8 @@ #define MyAppName "Path Editor" #define MyAppVersion "1.0" -#define MyAppPublisher "My Company" -#define MyAppURL "https://www.example.com/" +#define MyAppPublisher "LHY" +#define MyAppURL "https://github.com/LHY0125/PathEditor" #define MyAppExeName "PathEditor.exe" [Setup] @@ -22,7 +22,7 @@ DefaultGroupName={#MyAppName} AllowNoIcons=yes ; Uncomment the following line to run in non administrative install mode (install for current user only.) ;PrivilegesRequired=lowest -OutputDir=d:\Code\doing_exercises\exercise\系统PATH\dist\dist +OutputDir=d:\Code\doing_exercises\programs\PathEditor\dist\dist OutputBaseFilename=PathEditorSetup Compression=lzma SolidCompression=yes @@ -36,8 +36,8 @@ Name: "english"; MessagesFile: "compiler:Default.isl" Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] -Source: "d:\Code\doing_exercises\exercise\系统PATH\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion -Source: "d:\Code\doing_exercises\exercise\系统PATH\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "d:\Code\doing_exercises\programs\PathEditor\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "d:\Code\doing_exercises\programs\PathEditor\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] diff --git a/src/callbacks.c b/src/callbacks.c index 78834df..63605ef 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -317,6 +317,11 @@ int btn_help_cb(Ihandle *self) " - 删除:移除选中的路径。\n" " - 上移/下移:调整路径优先级。\n" "4. 点击【确定】保存更改并生效。\n" - "5. 注意:某些正在运行的程序可能需要重启才能识别新的环境变量。"); + "5. 注意:某些正在运行的程序可能需要重启才能识别新的环境变量。\n\n" + "--------------------------------------------------\n" + "作者:LHY\n" + "邮箱:3364451258@qq.com\n" + "GitHub:https://github.com/LHY0125/PathEditor\n" + "记得给我的项目点个star!"); return IUP_DEFAULT; } \ No newline at end of file