# Toolbox **Repository Path**: aipd/Toolbox ## Basic Information - **Project Name**: Toolbox - **Description**: 我的工具箱,包含尝试的一些工具 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-14 - **Last Updated**: 2025-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 我的工具箱(.NET版本) 一个基于.NET 8的Windows桌面应用程序,提供多种实用工具功能,包括活动监控提醒、DNS服务、英文工具等。 ## 功能特点 - ✅ 支持自定义提醒时长(1-120分钟) - ✅ 监控键盘和鼠标输入活动 - ✅ 自动检测用户空闲时间 - ✅ 弹出式提醒窗口 - ✅ 实时状态显示和日志记录 - ✅ 现代化的Windows Forms界面 - ✅ DNS服务功能,支持本地DNS服务器和上游DNS配置 - ✅ 英文学习工具 - ✅ 模块化设计,易于扩展 ## 系统要求 - Windows 10/11 操作系统 - .NET 8.0 Runtime 或更高版本 ## 编译和运行 ### 方法1: 使用Visual Studio 1. 打开 `Toolbox.sln` 解决方案文件 2. 编译项目 (Ctrl+Shift+B) 3. 运行程序 (F5) ### 方法2: 使用.NET CLI ```bash # 恢复NuGet包 dotnet restore # 编译项目 dotnet build # 运行程序 dotnet run ``` ### 方法3: 发布独立版本 ```bash # 发布为独立应用程序 dotnet publish -c Release -r win-x64 --self-contained true # 发布后可在 bin/Release/net8.0-windows/win-x64/publish 找到可执行文件 ``` ### 方法4: 使用批处理脚本 ```bash # 编译运行 build.bat # 重新构建并打包 rebuild_and_package.bat ``` ## 使用方法 1. 运行程序 2. 在不同功能页签间切换: - **提醒功能**:设置提醒间隔(分钟),点击"开始监控"按钮 - **DNS服务**:配置上游DNS服务器,启动本地DNS服务 - **英文工具**:使用英文学习相关功能 - **设置**:配置窗口行为、页签管理等 3. 程序将在后台运行并提供相应功能 ## 项目结构 ``` Toolbox/ ├── Model/ # 模型层 - 包含所有业务逻辑和数据模型 │ ├── BaseTabPage.cs # 页签基类,所有功能页签的父类 │ ├── TabRegistry.cs # 页签注册表,管理所有页签的注册和状态 │ ├── DNSService/ # DNS服务功能模块 │ │ ├── DNSConfigManager.cs # DNS配置管理器 │ │ ├── DNSServicePage.cs # DNS服务页签UI │ │ └── LocalDnsService.cs # 本地DNS服务实现 │ ├── English/ # 英文工具模块 │ │ └── EnglishPage.cs # 英文工具页签UI │ ├── Reminder/ # 提醒功能模块 │ │ ├── ReminderConfigManager.cs # 提醒配置管理器 │ │ ├── ReminderItem.cs # 提醒项数据模型 │ │ └── ReminderPage.cs # 提醒页签UI │ └── Settings/ # 设置功能模块 │ ├── ConfigManager.cs # 配置管理器 │ └── SettingsPage.cs # 设置页签UI ├── Forms/ # 窗体组件 │ └── CustomTabControl.cs # 自定义选项卡控件 ├── Conf/ # 配置文件目录 │ ├── DNSService.conf # DNS服务配置文件 │ └── Settings.conf # 系统设置配置文件 ├── Ico/ # 图标资源目录 ├── MainForm.cs # 主窗体 ├── Program.cs # 程序入口点 ├── Toolbox.csproj # 项目文件 ├── Toolbox.sln # 解决方案文件 ├── build.bat # 编译脚本 ├── rebuild_and_package.bat # 重新构建并打包脚本 └── README.md # 说明文档 ``` ## 命名空间 所有类现在使用以下命名空间结构: - `Toolbox.Model` - 通用基类和组件 - `Toolbox.Model.DNSService` - DNS服务功能相关类 - `Toolbox.Model.English` - 英文工具功能相关类 - `Toolbox.Model.Reminder` - 提醒功能相关类 - `Toolbox.Model.Settings` - 设置功能相关类 ## 功能模块说明 ### 1. DNS服务模块 (DNSService/) - **DNSConfigManager.cs**: 负责DNS配置的读取、保存和管理 - **DNSServicePage.cs**: 提供DNS服务的用户界面,包括上游DNS设置、本地DNS端口配置等 - **LocalDnsService.cs**: 实现本地DNS服务功能,处理DNS请求转发 ### 2. 英文工具模块 (English/) - **EnglishPage.cs**: 提供英文学习或翻译相关的工具界面 ### 3. 提醒功能模块 (Reminder/) - **ReminderConfigManager.cs**: 管理提醒事项的配置,包括添加、删除、修改提醒 - **ReminderItem.cs**: 提醒事项的数据模型,包含提醒时间、内容等属性 - **ReminderPage.cs**: 提醒功能的用户界面,显示和管理提醒事项 ### 4. 设置功能模块 (Settings/) - **ConfigManager.cs**: 系统配置管理器,负责读取和保存系统设置 - **SettingsPage.cs**: 设置页面的用户界面,包括窗口设置、页签管理、开机启动等 ### 5. 核心组件 - **BaseTabPage.cs**: 所有功能页签的基类,定义了页签的基本行为和接口 - **TabRegistry.cs**: 页签注册表,管理所有页签的注册、启用状态和配置 ## 配置文件说明 - **DNSService.conf**: DNS服务的配置文件,存储上游DNS服务器地址、本地端口等设置 - **Settings.conf**: 系统设置配置文件,存储窗口行为、页签状态、开机启动等设置 ## 架构特点 1. **模块化设计**: 每个功能模块独立组织,便于维护和扩展 2. **清晰的层次结构**: Model层负责业务逻辑,Forms层负责UI组件 3. **配置分离**: 配置文件独立于代码,便于用户自定义 4. **统一的页签管理**: 通过TabRegistry统一管理所有页签的生命周期 5. **可扩展性**: 新增功能只需按照现有模块结构添加相应文件 ## 技术实现 - 使用Windows API (`GetLastInputInfo`) 监控系统输入活动 - 多线程计时器设计,不影响UI响应 - 每5秒检测一次用户活动状态 - 实时更新活动时间显示 - DNS服务使用UDP协议监听指定端口 - 自定义选项卡控件实现多页签界面 ## 注意事项 - 程序需要访问系统输入信息来监控活动 - DNS服务可能需要管理员权限才能绑定某些端口 - 提醒窗口会自动置顶显示 - 点击提醒确认按钮后,活动时间会重置 - 程序最小化到系统托盘(可选功能,可后续添加) ## 许可证 请查看LICENSE文件了解许可证信息。