Files
SimpleRemoter/docs/UIBranding_Design.md
2026-04-19 22:55:21 +02:00

195 lines
6.4 KiB
Markdown
Raw 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.
# UI 定制化指南(编译时贴牌)
本指南面向下级开发商,说明如何定制程序品牌。
## 一、定制能力
- 修改程序品牌名称(窗口标题、启动画面、托盘提示、关于对话框)
- 隐藏不需要的菜单项(主菜单和右键菜单)
- 隐藏不需要的工具栏按钮
- 替换图标资源
所有配置在编译时固化,运行时用户无法修改。
## 二、环境要求
- **编译器**Visual Studio 2019 或更高版本
- **项目文件**`server/2015Remote/2015Remote.vcxproj`
## 三、定制流程
```
1. 用 Visual Studio 打开项目
2. 编辑 UIBranding.h 修改品牌名称和隐藏选项
3. 替换 res/ 目录下的图标资源(可选)
4. 编译项目Build → Build Solution
5. 在 Bin/ 目录获取编译结果
```
## 四、品牌名称配置
编辑 `UIBranding.h`(位于 `server/2015Remote/` 目录):
```cpp
// 程序显示名称(窗口标题、关于对话框、系统菜单)
#define BRAND_APP_NAME "MyRemote"
// 启动画面显示名称(通常为大写 logo 风格)
#define BRAND_SPLASH_NAME "MYREMOTE"
// 托盘图标提示文本
#define BRAND_TRAY_TIP "MyRemote 远程管理"
// 版权信息(关于对话框显示)
#define BRAND_COPYRIGHT "Copyright (C) 2024 MyCompany"
// 服务显示名称services.msc 中显示)
#define BRAND_SERVICE_DISPLAY "MyRemote Control Service"
// 崩溃转储文件前缀(生成 前缀_日期时间.dmp
#define BRAND_DUMP_PREFIX "MYREMOTE"
// 默认可执行文件名(文件对话框建议名)
#define BRAND_EXE_NAME "MYREMOTE.exe"
// 许可证文件类型描述(文件对话框过滤器)
#define BRAND_LICENSE_DESC "MyRemote License"
// 许可证文件名前缀(导出时 前缀_设备ID.lic
#define BRAND_LICENSE_PREFIX "MYREMOTE"
```
> **提示**:只需修改引号内的文本,保持其他格式不变。
## 五、隐藏菜单项
`UIBranding.h` 中找到对应的宏,将值从 `0` 改为 `1` 即可隐藏。
```cpp
// 0 = 显示(默认)
// 1 = 隐藏
#define HIDE_MENU_WALLET 1 // 将钱包菜单隐藏
```
### 5.1 主菜单
| 菜单 | 可隐藏项 |
|------|----------|
| 文件 | 参数设置、提醒设置、钱包、网络 |
| 工具 | 输入密码、导入许可证、PE资源编辑、生成授权、生成Master、许可证管理、V2私钥 |
| 工具→ShellCode | C Code、bin、Load Test、混淆、混淆bin、混淆Load Test、AES C、AES bin、AES Load Test |
| 参数 | 键盘记录、登录通知、启用日志、壁纸隐私、V2文件协议、钩子窗口、作为服务运行、以用户身份运行 |
| 扩展 | 历史客户端、备份数据、导入数据、重新加载插件、插件请求、下级FRP |
| 扩展→语言 | 更改语言、选择语言目录 |
| 扩展→IP定位 | QQWry定位、Ip2Region定位 |
| 帮助 | 重要说明、反馈、什么是这个、主控跟踪、请求授权 |
### 5.2 右键菜单
| 分类 | 可隐藏项 |
|------|----------|
| 基本操作 | 发送消息、更新、删除、分享、主机备注、重新分组 |
| 远程桌面 | 虚拟桌面、灰度桌面、远程桌面、H264桌面 |
| 授权管理 | 授权、取消授权、分配给 |
| 监控功能 | 添加监视、登录通知、私有屏幕 |
| 系统操作 | 以管理员运行、卸载、代理、代理端口、标准代理端口、注入记事本 |
| 机器管理 | 关机、重启、注销 |
| 执行命令 | 下载执行、上传执行、测试运行、Ghost执行 |
完整宏名称见 `UIBranding.h` 文件中的注释。
## 六、隐藏工具栏按钮
```cpp
#define HIDE_TOOLBAR_TERMINAL 0 // 终端管理
#define HIDE_TOOLBAR_PROCESS 0 // 进程管理
#define HIDE_TOOLBAR_WINDOW 0 // 窗口管理
#define HIDE_TOOLBAR_DESKTOP 0 // 桌面管理
#define HIDE_TOOLBAR_FILE 0 // 文件管理
#define HIDE_TOOLBAR_AUDIO 0 // 语音管理
#define HIDE_TOOLBAR_VIDEO 0 // 视频管理
#define HIDE_TOOLBAR_SERVICE 0 // 服务管理
#define HIDE_TOOLBAR_REGISTER 0 // 注册表管理
#define HIDE_TOOLBAR_KEYBOARD 0 // 键盘记录
#define HIDE_TOOLBAR_SETTINGS 0 // 参数设置
#define HIDE_TOOLBAR_BUILD 0 // 生成服务端
#define HIDE_TOOLBAR_SEARCH 0 // 搜索
#define HIDE_TOOLBAR_HELP 0 // 帮助
```
## 七、图标定制
图标资源位于 `res/` 目录,完整列表见 `res/README.md`
### 7.1 常用图标
| 文件 | 用途 | 规格 |
|------|------|------|
| `2015Remote.ico` | 主程序图标 | 多尺寸 ICO |
| `cmdshell.ico` | 远程终端窗口 | ICO |
| `screen.ico` | 远程桌面窗口 | ICO |
| `ToolBar_Main.bmp` | 主工具栏 | 48×48 多图拼接 |
| `Bitmap/*.bmp` | 菜单图标 | 16×16 BMP |
### 7.2 替换步骤
1. 准备相同规格的图标文件
2. 替换对应文件(保持文件名不变)
3. 重新编译
> **注意**:工具栏位图为多图横向拼接,替换时保持图标数量和顺序不变。
## 八、定制示例
以下示例展示如何创建一个简化版本,隐藏高级功能:
```cpp
// ===== 只需修改以下内容,其他保持默认 =====
// 品牌名称
#define BRAND_APP_NAME "MyRemote"
#define BRAND_SPLASH_NAME "MYREMOTE"
#define BRAND_TRAY_TIP "MyRemote 远程管理"
#define BRAND_COPYRIGHT "Copyright (C) 2024 MyCompany"
// 隐藏敏感功能(改为 1
#define HIDE_MENU_WALLET 1
#define HIDE_MENU_GEN_AUTH 1
#define HIDE_MENU_GEN_MASTER 1
#define HIDE_MENU_LICENSE_MGR 1
#define HIDE_MENU_V2_PRIVATEKEY 1
// 隐藏工具栏按钮
#define HIDE_TOOLBAR_KEYBOARD 1
#define HIDE_TOOLBAR_REGISTER 1
// 隐藏右键菜单项
#define HIDE_CTX_AUTHORIZE 1
#define HIDE_CTX_UNAUTHORIZE 1
```
## 九、注意事项
### 9.1 编码要求
`UIBranding.h` 如果包含中文,必须保存为 **UTF-8 with BOM** 编码。
### 9.2 子菜单自动清理
当子菜单所有项目都被隐藏时,父级菜单会自动消失。
### 9.3 多语言支持
修改品牌名称后,如需多语言支持,请在 `lang/*.ini` 中添加对应翻译:
```ini
; lang/en_US.ini
MyRemote=MyRemote
MyRemote 远程管理=MyRemote Remote Management
```
### 9.4 运行时状态
部分菜单项有勾选状态(如"键盘记录"),隐藏后状态显示不可用,但不影响程序运行。