# command_list_tray **Repository Path**: joeloon/command_list_tray ## Basic Information - **Project Name**: command_list_tray - **Description**: 常驻托盘的快捷命令列表程序 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Command List Tray - 快捷命令列表托盘程序 一个轻量级的 Windows 系统托盘应用程序,用于快速启动常用程序或命令。 ## 功能介绍 - **系统托盘常驻**:程序启动后最小化到系统托盘,不占用任务栏空间 - **右键菜单快速启动**:右键点击托盘图标,弹出菜单快速执行预设命令 - **自定义命令列表**:通过 `config.json` 配置文件自定义需要快速启动的程序 - **双击重载配置**:双击托盘图标即可重新加载配置文件,无需重启程序 - **单实例运行**:同一时间只允许运行一个实例,重复运行会激活已有实例 - **开机自启动支持**:提供注册表文件方便设置开机自动启动 ## 目录结构 ``` command_list_tray/ ├── main.c # 主程序源代码 ├── resource.rc # 资源文件(图标定义) ├── build_with_icon.bat # 编译脚本 ├── config.json # 配置文件(用户自定义命令) ├── config.json.example # 配置文件示例 ├── icon1.ico # 托盘图标 ├── command_list_tray.exe # 编译后的可执行文件 ├── 设置-开机自动启动.reg # 设置开机自启动注册表文件 ├── 设置-取消开机自动启动.reg # 取消开机自启动注册表文件 └── README.md # 本文件 ``` ## 使用方法 ### 1. 快速开始 1. 下载或编译生成 `command_list_tray.exe` 2. 在同目录下创建 `config.json` 配置文件(可参考 `config.json.example`) 3. 双击运行 `command_list_tray.exe`,程序将最小化到系统托盘 4. 右键点击托盘图标,选择需要执行的命令 ### 2. 配置文件说明 `config.json` 格式如下: ```json { "name": "命令配置", "note": "说明: 文件的取值不使用转义符,以便于拷贝程序和目录的路径", "editor": "D:\\Programs\\UltraEdit\\uedit64.exe", "commands": [ { "name": "记事本", "cmd": "C:\\Windows\\notepad.exe", "dir": "", "note": "注释文字" }, { "name": "计算器", "cmd": "C:\\Windows\\System32\\calc.exe", "dir": "" } ] } ``` **配置项说明:** | 字段 | 说明 | |------|------| | `name` | 配置文件的名称(仅用于标识) | | `editor` | 可选,指定编辑配置文件的程序路径 | | `commands` | 命令列表数组 | | `commands[].name` | 菜单中显示的命令名称 | | `commands[].cmd` | 要执行的程序路径或命令 | | `commands[].dir` | 可选,执行命令时的工作目录 | | `commands[].note` | 可选,注释说明 | **注意事项:** - 配置文件中不使用转义符,直接写 Windows 路径即可 - 路径中的反斜杠 `\` 不需要转义,直接写一个即可 - 最多支持 50 个命令(可通过修改源码中的 `MAX_COMMANDS` 调整) ### 3. 托盘图标操作 | 操作 | 功能 | |------|------| | 右键单击 | 显示命令菜单 | | 左键单击 | 显示命令菜单 | | 左键双击 | 重新加载配置文件 | ### 4. 开机自动启动 - **设置开机启动**:双击运行 `设置-开机自动启动.reg` - **取消开机启动**:双击运行 `设置-取消开机自动启动.reg` ## 编译方法 ### 环境要求 - Windows 操作系统 - MinGW-w64 编译器(需包含 `gcc` 和 `windres`) ### 编译步骤 #### 方法一:使用提供的批处理脚本(推荐) 1. 确保 MinGW-w64 已安装并添加到系统 PATH 2. 双击运行 `build_with_icon.bat` 3. 编译成功后会生成 `command_list_tray.exe` #### 方法二:手动编译 ```bash # 1. 编译资源文件 windres -o resource.o resource.rc # 2. 编译主程序并链接资源 gcc -o command_list_tray.exe main.c resource.o -mwindows -lshell32 -lole32 # 3. 清理临时文件 del resource.o ``` ### 编译参数说明 - `-mwindows`:编译 Windows GUI 程序(不显示控制台窗口) - `-lshell32`:链接 Shell32 库(用于托盘图标等功能) - `-lole32`:链接 Ole32 库 ## 技术细节 - **开发语言**:C 语言 - **依赖库**:Windows API (shell32, ole32) - **字符编码**:配置文件使用 UTF-8,程序内部转换为 GBK 显示 - **单实例机制**:使用命名互斥体 `Global\CommandListTrayApp_SingleInstance` ## 许可证 本项目采用 [MIT 许可证](https://opensource.org/licenses/MIT) 开源。 ``` MIT License Copyright (c) 2024 Command List Tray Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` **许可证要点:** - ✅ 允许自由使用、修改和分发 - ✅ 允许商业使用 - ✅ 允许闭源使用 - ⚠️ 需要保留版权声明和许可声明 - ⚠️ 不提供任何担保 ## 常见问题 **Q: 程序启动后找不到窗口?** A: 本程序设计为托盘程序,启动后自动最小化到系统托盘,请查看任务栏右侧的托盘图标。 **Q: 配置文件修改后如何生效?** A: 双击托盘图标即可重新加载配置,无需重启程序。 **Q: 如何修改托盘图标?** A: 替换目录下的 `icon1.ico` 文件,然后重新编译程序。 **Q: 支持命令行参数吗?** A: 支持,在 `config.json` 的 `cmd` 字段中直接填写带参数的命令即可,如 `"cmd": "notepad.exe D:\\test.txt"`。